| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package server
- import (
- "encoding/json"
- "heckel.io/ntfy/log"
- "io"
- "net/http"
- )
- const (
- matrixPushkeyHeader = "X-Matrix-Pushkey"
- )
- type matrixMessage struct {
- Notification *matrixNotification `json:"notification"`
- }
- type matrixNotification struct {
- Devices []*matrixDevice `json:"devices"`
- }
- type matrixDevice struct {
- PushKey string `json:"pushkey"`
- }
- type matrixResponse struct {
- Rejected []string `json:"rejected"`
- }
- func handleMatrixDiscovery(w http.ResponseWriter) error {
- w.Header().Set("Content-Type", "application/json")
- _, err := io.WriteString(w, `{"unifiedpush":{"gateway":"matrix"}}`+"\n")
- return err
- }
- func writeMatrixError(w http.ResponseWriter, pushKey string, err error) error {
- log.Debug("Matrix message with push key %s rejected: %s", pushKey, err.Error())
- response := &matrixResponse{
- Rejected: []string{pushKey},
- }
- w.Header().Set("Content-Type", "application/json")
- if err := json.NewEncoder(w).Encode(response); err != nil {
- return err
- }
- return nil
- }
- func writeMatrixSuccess(w http.ResponseWriter) error {
- response := &matrixResponse{
- Rejected: make([]string, 0),
- }
- if err := json.NewEncoder(w).Encode(response); err != nil {
- return err
- }
- return nil
- }
|