tsk-20: Modify how Twilio message is sent out (#21)

Closes #20

Reviewed-on: #21
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2026-01-01 20:58:03 +00:00
committed by phoenix
parent 7ec1f58f6a
commit 40d92ab7d3
6 changed files with 29 additions and 48 deletions
+7 -6
View File
@@ -7,6 +7,7 @@ import (
"git.kundeng.us/phoenix/swoosh/swoop/types"
"git.kundeng.us/phoenix/textsender-models/tx0/contact"
"git.kundeng.us/phoenix/textsender-models/tx0/message"
evnt "git.kundeng.us/phoenix/textsender-models/tx0/message/event"
"git.kundeng.us/phoenix/textsender-models/tx0/message/scheduling"
"git.kundeng.us/phoenix/textsender-models/tx0/token"
"github.com/google/uuid"
@@ -46,18 +47,18 @@ func (s *Scheduler) GetContact(id uuid.UUID) (*contact.Contact, error) {
}
}
func (s *Scheduler) ScheduleMessage(schMsg scheduling.ScheduledMessage, event scheduling.ScheduledMessageEvent, c contact.Contact, msg message.Message) (*types.TwilioResult, *time.Time, error) {
func (s *Scheduler) ScheduleMessage(schMsg scheduling.ScheduledMessage, event scheduling.ScheduledMessageEvent, c contact.Contact, msg message.Message) (*types.TwilioResult, map[string]any, *time.Time, error) {
msgSender := send.MessageSender{Config: s.Application.TwilioConfig}
if res, err := msgSender.Send(msg, c, &schMsg.Scheduled); err != nil {
return nil, nil, err
if res, resRaw, err := msgSender.Send(msg, c, &schMsg.Scheduled); err != nil {
return nil, nil, nil, err
} else {
sent := time.Now()
return res, &sent, nil
return res, resRaw, &sent, nil
}
}
func (s *Scheduler) RecordEventResponse(schMsgEvent *scheduling.ScheduledMessageEvent, userId uuid.UUID, bytes []byte, sent *time.Time) ([]*message.MessageEventResponse, error) {
mre := message.MessageEventResponse{ScheduledMessageEventId: schMsgEvent.Id, UserId: userId, Response: bytes, Sent: *sent, Status: message.Message_Event_Response_Status_Scheduled}
func (s *Scheduler) RecordEventResponse(schMsgEvent *scheduling.ScheduledMessageEvent, userId uuid.UUID, bytes map[string]any, sent *time.Time) ([]*evnt.MessageEventResponse, error) {
mre := evnt.MessageEventResponse{ScheduledMessageEventId: schMsgEvent.Id, UserId: userId, Response: bytes, Sent: *sent, Status: evnt.Message_Event_Response_Status_Scheduled}
msgEventResponse := MessageEventResponse{Application: s.Application, Token: s.Token}
if responses, err := msgEventResponse.RecordEventResponse(&mre); err != nil {