diff --git a/go.mod b/go.mod index da1c302..72a3d4e 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module git.kundeng.us/phoenix/catapult go 1.25.4 require ( - git.kundeng.us/phoenix/swoosh v0.0.12 - git.kundeng.us/phoenix/textsender-models v0.0.12 + git.kundeng.us/phoenix/swoosh v0.1.0 + git.kundeng.us/phoenix/textsender-models v0.1.6 github.com/google/uuid v1.6.0 github.com/joho/godotenv v1.5.1 ) diff --git a/go.sum b/go.sum index 50ac006..90e7c81 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ -git.kundeng.us/phoenix/swoosh v0.0.12 h1:OtGUYJzakpzJ0fF2BP/z+maCtEfG+avQUJiCY9LMix8= -git.kundeng.us/phoenix/swoosh v0.0.12/go.mod h1:5J/URwiWcjksaPmczelvBEeLdwB1mACFuhUdtWTheDg= -git.kundeng.us/phoenix/textsender-models v0.0.12 h1:ps9H3FS5LyCwQhAiIvg4vYyfLZZ64dex1y9ytb0o9C4= -git.kundeng.us/phoenix/textsender-models v0.0.12/go.mod h1:9iPDQJg1Tc6WMNoW5+f8YKmnosMwlWHJ++hmxNLDEe0= +git.kundeng.us/phoenix/swoosh v0.1.0 h1:9P+wLuJsIZmVcRoG+W22l06hwp54eNrYbsBtGjucnjI= +git.kundeng.us/phoenix/swoosh v0.1.0/go.mod h1:6/97/aS8KVdYqlczQ9ALvS3GVoce1UVl+D8VQK42Bd0= +git.kundeng.us/phoenix/textsender-models v0.1.6 h1:d/rhvqjFSt1Ty/3UfwS21be+lYb9EtWEaDtkzfbzEp0= +git.kundeng.us/phoenix/textsender-models v0.1.6/go.mod h1:9iPDQJg1Tc6WMNoW5+f8YKmnosMwlWHJ++hmxNLDEe0= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/internal/app/app.go b/internal/app/app.go index 9dfe14d..10e27aa 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -5,7 +5,7 @@ import ( "os" "path" - "git.kundeng.us/phoenix/textsender-models/tx0/config" + auxcfg "git.kundeng.us/phoenix/textsender-models/tx0/config/auxiliary" "github.com/joho/godotenv" ) @@ -16,7 +16,7 @@ type App struct { AuthUrl string ServiceUsername string ServicePassphrase string - TwilioConfig *config.TwilioConfig + TwilioConfig *auxcfg.TwilioConfig } func Load() (*App, error) { @@ -56,7 +56,7 @@ func Load() (*App, error) { } } -func loadTwilioConfig() (*config.TwilioConfig, error) { +func loadTwilioConfig() (*auxcfg.TwilioConfig, error) { authSid := os.Getenv("TWILIO_AUTH_SID") serviceSid := os.Getenv("TWILIO_SERVICE_SID") authToken := os.Getenv("TWILIO_AUTH_TOKEN") @@ -71,7 +71,7 @@ func loadTwilioConfig() (*config.TwilioConfig, error) { } else if len(phoneNumber) == 0 { return nil, fmt.Errorf("Twilio config phone number not provided") } else { - cfg := config.TwilioConfig{} + cfg := auxcfg.TwilioConfig{} cfg.AccountSID = authSid cfg.AuthToken = authToken cfg.ServiceSID = serviceSid diff --git a/internal/service/core/service.go b/internal/service/core/service.go index 42abe2d..ac59b56 100644 --- a/internal/service/core/service.go +++ b/internal/service/core/service.go @@ -2,7 +2,6 @@ package core import ( "context" - "encoding/json" "log" "sync" "time" @@ -99,42 +98,23 @@ func (s *Service) worker1() { if msg, err := scheduler.GetMessage(event.MessageId); err != nil { log.Println("Error getting message:", err) } else { - if c, err := scheduler.GetContact(event.RecipientId); err != nil { + if c, err := scheduler.GetContact(event.ContactId); err != nil { log.Println("Error getting contact:", err) } else { log.Println("Message Id:", msg.Id) log.Println("Contact Id:", c.Id) - if res, sent, err := scheduler.ScheduleMessage(*item, *event, *c, *msg); err != nil { + if res, resRaw, sent, err := scheduler.ScheduleMessage(*item, *event, *c, *msg); err != nil { log.Println("Failure with scheduling the message:", err) } else { if res != nil { - bytes, err := json.Marshal(res) - if err != nil { - log.Println("Error parsing result:", err) + if eventResponse, err := scheduler.RecordEventResponse(event, item.UserId, resRaw, sent); err != nil { + log.Println("Failure recording event response:", err) } else { - jsonValue := string(bytes) - log.Println("Result:", jsonValue) - - if eventResponse, err := scheduler.RecordEventResponse(event, item.UserId, bytes, sent); err != nil { - log.Println("Failure recording event response:", err) + if len(eventResponse) == 0 { + log.Println("No event responses") } else { - if len(eventResponse) == 0 { - log.Println("No event responses") - } else { - eventResponse := eventResponse[0] - log.Println("Event response saved. Id:", eventResponse.Id) - sameJsonValue := string(eventResponse.Response) - - if jsonValue == sameJsonValue { - log.Println("Matches") - } else if len(jsonValue) == len(sameJsonValue) { - log.Println("Same size") - log.Println(jsonValue) - log.Println(sameJsonValue) - } else { - log.Println("Not the same") - } - } + eventResponse := eventResponse[0] + log.Println("Event response saved. Id:", eventResponse.Id) } } } else { diff --git a/internal/service/message_event_response.go b/internal/service/message_event_response.go index b3e6ade..c4a1c3f 100644 --- a/internal/service/message_event_response.go +++ b/internal/service/message_event_response.go @@ -6,7 +6,7 @@ import ( "net/http" "strings" - "git.kundeng.us/phoenix/textsender-models/tx0/message" + "git.kundeng.us/phoenix/textsender-models/tx0/message/event" "git.kundeng.us/phoenix/textsender-models/tx0/token" "git.kundeng.us/phoenix/catapult/internal/app" @@ -18,11 +18,11 @@ type MessageEventResponse struct { } type recordMessageEventResponse struct { - Message string `json:"message"` - Data []*message.MessageEventResponse `json:"data"` + Message string `json:"message"` + Data []*event.MessageEventResponse `json:"data"` } -func (m *MessageEventResponse) RecordEventResponse(mer *message.MessageEventResponse) ([]*message.MessageEventResponse, error) { +func (m *MessageEventResponse) RecordEventResponse(mer *event.MessageEventResponse) ([]*event.MessageEventResponse, error) { fullUrl := fmt.Sprintf("%s/api/v1/schedule/message/event/response/record", m.Application.ApiUrl) jsonData, err := json.Marshal(mer) if err != nil { diff --git a/internal/service/scheduler.go b/internal/service/scheduler.go index 651dff6..5ad5b0c 100644 --- a/internal/service/scheduler.go +++ b/internal/service/scheduler.go @@ -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 {