tsk-14: Record when message was sent (#16)

Closes #14

Reviewed-on: #16
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-12-01 21:24:05 +00:00
committed by phoenix
parent 04da7785c8
commit c809815549
10 changed files with 118 additions and 28 deletions
@@ -0,0 +1,58 @@
package service
import (
"encoding/json"
"fmt"
"net/http"
"strings"
"git.kundeng.us/phoenix/textsender-models/tx0/message"
"git.kundeng.us/phoenix/textsender-models/tx0/token"
"git.kundeng.us/phoenix/catapult/internal/app"
)
type MessageEventResponse struct {
Application *app.App
Token *token.Login
}
type recordMessageEventResponse struct {
Message string `json:"message"`
Data []*message.MessageEventResponse `json:"data"`
}
func (m *MessageEventResponse) RecordEventResponse(mer *message.MessageEventResponse) ([]*message.MessageEventResponse, error) {
fullUrl := fmt.Sprintf("%s/api/v1/schedule/message/event/response/record", m.Application.ApiUrl)
jsonData, err := json.Marshal(mer)
if err != nil {
return nil, err
}
req, err := http.NewRequest("POST", fullUrl, strings.NewReader(string(jsonData)))
if err != nil {
return nil, err
}
token := m.Token.AccessToken
req.Header.Set("Authorization", "Bearer "+token)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var r recordMessageEventResponse
err = json.NewDecoder(resp.Body).Decode(&r)
if err != nil {
return nil, err
} else {
if len(r.Data) == 0 {
return nil, nil
} else {
return r.Data, nil
}
}
}