From 2984a715b830410b6d6ce2a8aaa1fc8a2388ee99 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 5 Jan 2025 15:16:26 -0800 Subject: add ntfy integration --- adapters/messaging/ntfy.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 adapters/messaging/ntfy.go (limited to 'adapters/messaging/ntfy.go') diff --git a/adapters/messaging/ntfy.go b/adapters/messaging/ntfy.go new file mode 100644 index 0000000..837c01b --- /dev/null +++ b/adapters/messaging/ntfy.go @@ -0,0 +1,35 @@ +package messaging + +import ( + "fmt" + "log" + "net/http" + "strings" + + "git.simponic.xyz/simponic/phoneof/utils" +) + +func SendNtfy(topic string, ntfyEndpoint string) Continuation { + return func(message Message) ContinuationChain { + return func(success Continuation, failure Continuation) ContinuationChain { + log.Println(message) + if message.FrenName != "ntfy" { + log.Printf("fren name for message %v is not ntfy so we wont send it there", message) + return success(message) + } + encodedMsg := fmt.Sprintf(`{"message": "%s", "topic": "%s"}`, utils.Quote(message.Message), utils.Quote(topic)) + + url := ntfyEndpoint + payload := strings.NewReader(encodedMsg) + + req, _ := http.NewRequest("PUT", url, payload) + req.Header.Add("Content-Type", "application/json") + res, err := http.DefaultClient.Do(req) + if err != nil || res.StatusCode/100 != 2 { + log.Printf("got err sending message send req %s %v %s", encodedMsg, res, err) + return failure(message) + } + return success(message) + } + } +} -- cgit v1.2.3-70-g09d2