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
+18 -8
View File
@@ -1,7 +1,7 @@
package service
import (
"fmt"
"time"
"git.kundeng.us/phoenix/swoosh/swoop/send"
"git.kundeng.us/phoenix/swoosh/swoop/types"
@@ -14,10 +14,9 @@ import (
"git.kundeng.us/phoenix/catapult/internal/app"
)
type Scheduler struct {
Application *app.App
Token *token.Login
Token *token.Login
}
func (s *Scheduler) GetEvents(scheduledMessageId uuid.UUID) ([]*scheduling.ScheduledMessageEvent, error) {
@@ -41,18 +40,29 @@ func (s *Scheduler) GetMessage(id uuid.UUID) (*message.Message, error) {
func (s *Scheduler) GetContact(id uuid.UUID) (*contact.Contact, error) {
ctct := Contact{Application: s.Application, Token: s.Token}
if c, err := ctct.GetContact(id); err != nil {
return nil ,err
return nil, err
} else {
return c, nil
}
}
func (s *Scheduler) ScheduleMessage(schMsg scheduling.ScheduledMessage, event scheduling.ScheduledMessageEvent, c contact.Contact, msg message.Message) (*types.TwilioResult, error) {
func (s *Scheduler) ScheduleMessage(schMsg scheduling.ScheduledMessage, event scheduling.ScheduledMessageEvent, c contact.Contact, msg message.Message) (*types.TwilioResult, *time.Time, error) {
msgSender := send.MessageSender{Config: s.Application.TwilioConfig}
if res, err := msgSender.Send(msg, c, &schMsg.Scheduled); err != nil {
return nil, err
return nil, nil, err
} else {
fmt.Println(res.AccountSid)
return res, nil
sent := time.Now()
return res, &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}
msgEventResponse := MessageEventResponse{Application: s.Application, Token: s.Token}
if responses, err := msgEventResponse.RecordEventResponse(&mre); err != nil {
return nil, err
} else {
return responses, nil
}
}