Closes #8 Reviewed-on: #15 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.kundeng.us/phoenix/swoosh/swoop/send"
|
|
"git.kundeng.us/phoenix/swoosh/swoop/types"
|
|
"git.kundeng.us/phoenix/textsender-models/tx0/contact"
|
|
"git.kundeng.us/phoenix/textsender-models/tx0/message"
|
|
"git.kundeng.us/phoenix/textsender-models/tx0/message/scheduling"
|
|
"git.kundeng.us/phoenix/textsender-models/tx0/token"
|
|
"github.com/google/uuid"
|
|
|
|
"git.kundeng.us/phoenix/catapult/internal/app"
|
|
)
|
|
|
|
|
|
type Scheduler struct {
|
|
Application *app.App
|
|
Token *token.Login
|
|
}
|
|
|
|
func (s *Scheduler) GetEvents(scheduledMessageId uuid.UUID) ([]*scheduling.ScheduledMessageEvent, error) {
|
|
sme := ScheduledMessageEvent{Application: s.Application, Token: s.Token}
|
|
if events, err := sme.GetEvents(scheduledMessageId); err != nil {
|
|
return nil, err
|
|
} else {
|
|
return events, nil
|
|
}
|
|
}
|
|
|
|
func (s *Scheduler) GetMessage(id uuid.UUID) (*message.Message, error) {
|
|
msg := Message{Application: s.Application, Token: s.Token}
|
|
if letter, err := msg.GetMessage(id); err != nil {
|
|
return nil, err
|
|
} else {
|
|
return letter, nil
|
|
}
|
|
}
|
|
|
|
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
|
|
} else {
|
|
return c, nil
|
|
}
|
|
}
|
|
|
|
func (s *Scheduler) ScheduleMessage(schMsg scheduling.ScheduledMessage, event scheduling.ScheduledMessageEvent, c contact.Contact, msg message.Message) (*types.TwilioResult, error) {
|
|
msgSender := send.MessageSender{Config: s.Application.TwilioConfig}
|
|
if res, err := msgSender.Send(msg, c, &schMsg.Scheduled); err != nil {
|
|
return nil, err
|
|
} else {
|
|
fmt.Println(res.AccountSid)
|
|
return res, nil
|
|
}
|
|
}
|