Added nexmo SMS parsing

Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
Marcus Noble 2022-02-28 08:07:59 +00:00
parent 6c345c8aff
commit 41008e4dee
Signed by: AverageMarcus
GPG Key ID: B8F2DB8A7AEBAF78
2 changed files with 47 additions and 0 deletions

View File

@ -55,6 +55,7 @@ func main() {
app.Use(logger.New())
app.Post("/", HandlePayloadPost)
app.Post("/alertmanager", HandleAlertmanagerPayloadPost)
app.Post("/nexmo/sms", HandleNexmoSMSPost)
app.Listen(fmt.Sprintf(":%s", port))
}

46
nexmo.go Normal file
View 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)
}