Added nexmo SMS parsing
Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
parent
6c345c8aff
commit
41008e4dee
1
main.go
1
main.go
@ -55,6 +55,7 @@ func main() {
|
|||||||
app.Use(logger.New())
|
app.Use(logger.New())
|
||||||
app.Post("/", HandlePayloadPost)
|
app.Post("/", HandlePayloadPost)
|
||||||
app.Post("/alertmanager", HandleAlertmanagerPayloadPost)
|
app.Post("/alertmanager", HandleAlertmanagerPayloadPost)
|
||||||
|
app.Post("/nexmo/sms", HandleNexmoSMSPost)
|
||||||
app.Listen(fmt.Sprintf(":%s", port))
|
app.Listen(fmt.Sprintf(":%s", port))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
46
nexmo.go
Normal file
46
nexmo.go
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
"maunium.net/go/mautrix"
|
||||||
|
"maunium.net/go/mautrix/event"
|
||||||
|
"maunium.net/go/mautrix/format"
|
||||||
|
"maunium.net/go/mautrix/id"
|
||||||
|
)
|
||||||
|
|
||||||
|
type NexmoSMS struct {
|
||||||
|
ID string `json:"messageId"`
|
||||||
|
From string `json:"msisdn"`
|
||||||
|
Text string `json:"test"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func HandleNexmoSMSPost(c *fiber.Ctx) error {
|
||||||
|
payload := NexmoSMS{}
|
||||||
|
if err := c.BodyParser(&payload); err != nil {
|
||||||
|
fmt.Println("Failed to parse payload", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
msg := fmt.Sprintf(`
|
||||||
|
New Message from: %s
|
||||||
|
|
||||||
|
> %s`, payload.From, payload.Text)
|
||||||
|
|
||||||
|
_, err := matrixClient.SendMessageEvent(
|
||||||
|
id.RoomID(getRoom("SMS")),
|
||||||
|
event.EventMessage,
|
||||||
|
format.RenderMarkdown(msg, true, true),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Failed sending to Matrix", err)
|
||||||
|
if httpErr, ok := err.(mautrix.HTTPError); ok {
|
||||||
|
return c.Status(httpErr.Response.StatusCode).SendString(httpErr.RespError.Err)
|
||||||
|
}
|
||||||
|
return fiber.ErrInternalServerError
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.SendStatus(fiber.StatusOK)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user