tsk-8: Schedule message (#15)

Closes #8

Reviewed-on: #15
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-11-29 19:28:05 +00:00
committed by phoenix
parent 9af11dc961
commit 04da7785c8
9 changed files with 367 additions and 6 deletions
+40 -2
View File
@@ -2,6 +2,7 @@ package core
import (
"context"
"encoding/json"
"fmt"
"log"
"sync"
@@ -66,18 +67,55 @@ func (s *Service) worker1() {
}
}
log.Println("Twilio config account sid:", s.App.TwilioConfig.AccountSID)
log.Println("Twilio config auth token:", s.App.TwilioConfig.AuthToken)
log.Println("Twilio config service sid:", s.App.TwilioConfig.ServiceSID)
log.Println("Twilio config number:", s.App.TwilioConfig.Number)
queue := service.Queue{Application: s.App, Token: s.token}
if item, exists, err := queue.GetQueue(); err != nil {
fmt.Println("Error:", err)
} else {
if *exists {
fmt.Println("Id:", item.Id)
fmt.Println("Scheduled message Id:", item.Id)
fmt.Println("Created:", item.Created)
fmt.Println("Scheduled:", item.Scheduled)
fmt.Println("Status:", item.Status)
fmt.Println("User Id:", item.UserId)
log.Println("User Id:", item.UserId)
if scheduledMessageValid(item, now) {
fmt.Println("Scheduled Message can be sent")
scheduler := service.Scheduler{Application: s.App, Token: s.token}
if events, err := scheduler.GetEvents(item.Id); err != nil {
fmt.Println("Error getting event:", err)
} else {
for _, event := range events {
if msg, err := scheduler.GetMessage(event.MessageId); err != nil {
fmt.Println("Error getting message:", err)
} else {
if c, err := scheduler.GetContact(event.RecipientId); err != nil {
fmt.Println("Error getting contact:", err)
} else {
fmt.Println("Message Id:", msg.Id)
fmt.Println("Contact Id:", c.Id)
if res, 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)
} else {
jsonValue := string(bytes)
log.Println("Result:", jsonValue)
}
} else {
log.Println("Result should not be empty")
}
}
}
}
}
}
} else {
fmt.Println("Invalid scheduled message")
}