tsk-57: Change schema of scheduled_message_events (#65)
Closes #57 Reviewed-on: phoenix/textsender-api#65 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
@@ -13,7 +12,6 @@ import (
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/db"
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/handler/endpoint"
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/store/mock"
|
||||
)
|
||||
@@ -80,11 +78,3 @@ func TestGetContactWithMock(t *testing.T) {
|
||||
|
||||
assert.NotNil(t, response.Data[0].Id, "Id should not be nil")
|
||||
}
|
||||
|
||||
func resetTestDB(t *testing.T) {
|
||||
t.Helper()
|
||||
_, err := db.Pool.Exec(context.Background(), "DELETE FROM contacts")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to reset test database: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,22 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"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"
|
||||
"github.com/google/uuid"
|
||||
"github.com/joho/godotenv"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/app"
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/config"
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/db"
|
||||
)
|
||||
|
||||
func GetApp() (*app.App, error) {
|
||||
@@ -29,3 +37,40 @@ func GetApp() (*app.App, error) {
|
||||
return &app.App{TwilioConfig: tCfg}, nil
|
||||
}
|
||||
}
|
||||
|
||||
func ResetTestDB(t *testing.T, tableName string) {
|
||||
t.Helper()
|
||||
_, err := db.Pool.Exec(context.Background(), fmt.Sprintf("DELETE FROM ", tableName))
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to reset test database: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestContact(id uuid.UUID, userId uuid.UUID) contact.Contact {
|
||||
if id == uuid.Nil {
|
||||
id = uuid.New()
|
||||
return contact.Contact{Id: &id, PhoneNumber: "+10123456789", UserId: &userId}
|
||||
} else {
|
||||
return contact.Contact{Id: &id, PhoneNumber: "+10123456789", UserId: &userId}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMessage(id uuid.UUID, userId uuid.UUID) message.Message {
|
||||
if id == uuid.Nil {
|
||||
return message.Message{Id: uuid.New(), Content: "Oh how the mighty have fallen", UserId: userId}
|
||||
} else {
|
||||
return message.Message{Id: id, Content: "Oh how the mighty have fallen", UserId: userId}
|
||||
}
|
||||
}
|
||||
|
||||
func TestScheduledMessage(id uuid.UUID, userId uuid.UUID, now time.Time) scheduling.ScheduledMessage {
|
||||
if id == uuid.Nil {
|
||||
return scheduling.ScheduledMessage{Id: uuid.New(), UserId: userId, Scheduled: now.Add(20 * time.Minute), Status: scheduling.Pending}
|
||||
} else {
|
||||
return scheduling.ScheduledMessage{Id: id, UserId: userId, Scheduled: now.Add(20 * time.Minute), Status: scheduling.Pending}
|
||||
}
|
||||
}
|
||||
|
||||
func TestScheduledMessageEvent(messageId, contactId, scheduledMessageId uuid.UUID) scheduling.ScheduledMessageEvent {
|
||||
return scheduling.ScheduledMessageEvent{MessageId: messageId, ContactId: contactId, ScheduledMessageId: scheduledMessageId}
|
||||
}
|
||||
|
||||
+10
-10
@@ -12,16 +12,6 @@ import (
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/store"
|
||||
)
|
||||
|
||||
type RequestAddMessage struct {
|
||||
Content string `json:"content"`
|
||||
UserId uuid.UUID `json:"user_id"`
|
||||
}
|
||||
|
||||
type AddMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []message.Message `json:"data"`
|
||||
}
|
||||
|
||||
type MessageHandler struct {
|
||||
App *app.App
|
||||
MessageStore store.MessageStore
|
||||
@@ -33,6 +23,16 @@ func NewMessageHandler(apiApp *app.App, str store.MessageStore) *MessageHandler
|
||||
|
||||
const Message_Limit = 200
|
||||
|
||||
type RequestAddMessage struct {
|
||||
Content string `json:"content"`
|
||||
UserId uuid.UUID `json:"user_id"`
|
||||
}
|
||||
|
||||
type AddMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []message.Message `json:"data"`
|
||||
}
|
||||
|
||||
// AddMessage godoc
|
||||
// @Summary Add message
|
||||
// @Description Add a message record to send a text to (requires JWT)
|
||||
|
||||
@@ -72,20 +72,23 @@ func (e *EventResponseHandler) RecordResponse(w http.ResponseWriter, r *http.Req
|
||||
rp.Sent = *req.Sent
|
||||
|
||||
switch req.Status {
|
||||
case message.Message_Event_Response_Status_Instant: {
|
||||
log.Println("Status:", req.Status)
|
||||
rp.Status = req.Status
|
||||
rp.MessageId = req.MessageId
|
||||
rp.ContactId = req.ContactId
|
||||
}
|
||||
case message.Message_Event_Response_Status_Scheduled: {
|
||||
log.Println("Status:", req.Status)
|
||||
rp.Status = req.Status
|
||||
}
|
||||
default: {
|
||||
statusCode = http.StatusBadRequest
|
||||
resp.Message = "Status is invalid"
|
||||
}
|
||||
case message.Message_Event_Response_Status_Instant:
|
||||
{
|
||||
log.Println("Status:", req.Status)
|
||||
rp.Status = req.Status
|
||||
rp.MessageId = req.MessageId
|
||||
rp.ContactId = req.ContactId
|
||||
}
|
||||
case message.Message_Event_Response_Status_Scheduled:
|
||||
{
|
||||
log.Println("Status:", req.Status)
|
||||
rp.Status = req.Status
|
||||
}
|
||||
default:
|
||||
{
|
||||
statusCode = http.StatusBadRequest
|
||||
resp.Message = "Status is invalid"
|
||||
}
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
@@ -103,8 +106,8 @@ func (e *EventResponseHandler) RecordResponse(w http.ResponseWriter, r *http.Req
|
||||
}
|
||||
|
||||
type GetMessageEventResponseFetchedResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []*message.MessageEventResponse `json:"data"`
|
||||
Message string `json:"message"`
|
||||
Data []*message.MessageEventResponse `json:"data"`
|
||||
}
|
||||
|
||||
func (e *EventResponseHandler) Fetch(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -35,9 +35,9 @@ func TestRecordMessageEventResponseWithMock(t *testing.T) {
|
||||
scheduledMessageId := uuid.New()
|
||||
testUserId := uuid.New()
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
con := TestContact(recipientId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := scheduling.ScheduledMessageEvent{}
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
@@ -10,6 +10,16 @@ import (
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/store"
|
||||
)
|
||||
|
||||
type ScheduledMessageStatusHandler struct {
|
||||
App *app.App
|
||||
ScheduledMessageEventStore store.ScheduledMessageEventStore
|
||||
ScheduledMessageStore store.ScheduledMessageStore
|
||||
}
|
||||
|
||||
func NewScheduledMessageStatusHandler(apiApp *app.App, str store.ScheduledMessageEventStore, schStore store.ScheduledMessageStore) *ScheduledMessageStatusHandler {
|
||||
return &ScheduledMessageStatusHandler{App: apiApp, ScheduledMessageEventStore: str, ScheduledMessageStore: schStore}
|
||||
}
|
||||
|
||||
type RequestScheduledMessageStatus struct {
|
||||
ScheduledMessageId uuid.UUID `json:"scheduled_message_id"`
|
||||
Status string `json:"status"`
|
||||
@@ -25,16 +35,6 @@ type ScheduledMessageStatusResponse struct {
|
||||
Data []ScheduledMessageChange `json:"data"`
|
||||
}
|
||||
|
||||
type ScheduledMessageStatusHandler struct {
|
||||
App *app.App
|
||||
ScheduledMessageEventStore store.ScheduledMessageEventStore
|
||||
ScheduledMessageStore store.ScheduledMessageStore
|
||||
}
|
||||
|
||||
func NewScheduledMessageStatusHandler(apiApp *app.App, str store.ScheduledMessageEventStore, schStore store.ScheduledMessageStore) *ScheduledMessageStatusHandler {
|
||||
return &ScheduledMessageStatusHandler{App: apiApp, ScheduledMessageEventStore: str, ScheduledMessageStore: schStore}
|
||||
}
|
||||
|
||||
// UpdateStatus godoc
|
||||
// @Summary Update status
|
||||
// @Description Update the status of a scheduled message (requires JWT)
|
||||
|
||||
@@ -29,10 +29,10 @@ func TestUpdateScheduledMessageStatusWithMock(t *testing.T) {
|
||||
scheduledMessageId := uuid.New()
|
||||
testUserId := uuid.New()
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := testScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
con := TestContact(recipientId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := TestScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
|
||||
@@ -13,6 +13,15 @@ import (
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/store"
|
||||
)
|
||||
|
||||
type ScheduledMessageHandler struct {
|
||||
App *app.App
|
||||
ScheduledMessageStore store.ScheduledMessageStore
|
||||
}
|
||||
|
||||
func NewScheduledMessageHandler(apiApp *app.App, str store.ScheduledMessageStore) *ScheduledMessageHandler {
|
||||
return &ScheduledMessageHandler{App: apiApp, ScheduledMessageStore: str}
|
||||
}
|
||||
|
||||
type RequestAddScheduledMessage struct {
|
||||
Scheduled time.Time `json:"scheduled"`
|
||||
Status string `json:"status"`
|
||||
@@ -24,25 +33,6 @@ type AddScheduledMessageResponse struct {
|
||||
Data []scheduling.ScheduledMessage `json:"data"`
|
||||
}
|
||||
|
||||
type GetScheduledMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessage `json:"data"`
|
||||
}
|
||||
|
||||
type FetchNextMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessage `json:"data"`
|
||||
}
|
||||
|
||||
type ScheduledMessageHandler struct {
|
||||
App *app.App
|
||||
ScheduledMessageStore store.ScheduledMessageStore
|
||||
}
|
||||
|
||||
func NewScheduledMessageHandler(apiApp *app.App, str store.ScheduledMessageStore) *ScheduledMessageHandler {
|
||||
return &ScheduledMessageHandler{App: apiApp, ScheduledMessageStore: str}
|
||||
}
|
||||
|
||||
// AddScheduledMessage godoc
|
||||
// @Summary Add scheduled message
|
||||
// @Description Adds a scheduled message (requires JWT)
|
||||
@@ -106,6 +96,11 @@ func (s *ScheduledMessageHandler) AddScheduledMessage(w http.ResponseWriter, r *
|
||||
RespondWithJSON(w, statusCode, &resp)
|
||||
}
|
||||
|
||||
type GetScheduledMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessage `json:"data"`
|
||||
}
|
||||
|
||||
// GetScheduledMessage godoc
|
||||
// @Summary Get scheduled message
|
||||
// @Description Get a scheduled message (requires JWT)
|
||||
@@ -183,6 +178,11 @@ func (s *ScheduledMessageHandler) GetScheduledMessage(w http.ResponseWriter, r *
|
||||
RespondWithJSON(w, statusCode, &resp)
|
||||
}
|
||||
|
||||
type FetchNextMessageResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessage `json:"data"`
|
||||
}
|
||||
|
||||
// FetchNextMessage godoc
|
||||
// @Summary Fetch scheduled message
|
||||
// @Description Fetches a scheduled message that is available to be processed (requires JWT)
|
||||
|
||||
@@ -12,27 +12,6 @@ import (
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/store"
|
||||
)
|
||||
|
||||
type RequestAddScheduledMessageEvent struct {
|
||||
RecipientId uuid.UUID `json:"recipient_id"`
|
||||
MessageId uuid.UUID `json:"message_id"`
|
||||
ScheduledMessageId uuid.UUID `json:"scheduled_message_id"`
|
||||
}
|
||||
|
||||
type AddScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
type GetScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
type DeleteScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
type ScheduledMessageEventHandler struct {
|
||||
App *app.App
|
||||
ScheduledMessageEventStore store.ScheduledMessageEventStore
|
||||
@@ -43,7 +22,18 @@ func NewScheduledMessageEventHandler(apiApp *app.App, str store.ScheduledMessage
|
||||
return &ScheduledMessageEventHandler{App: apiApp, ScheduledMessageEventStore: str, ScheduledMessageStore: schStore}
|
||||
}
|
||||
|
||||
// AddContact godoc
|
||||
type RequestAddScheduledMessageEvent struct {
|
||||
ContactId uuid.UUID `json:"contact_id"`
|
||||
MessageId uuid.UUID `json:"message_id"`
|
||||
ScheduledMessageId uuid.UUID `json:"scheduled_message_id"`
|
||||
}
|
||||
|
||||
type AddScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
// AddScheduledMessageEvent godoc
|
||||
// @Summary Add scheduled message event
|
||||
// @Description Add a scheduled message event (requires JWT)
|
||||
// @Tags scheduled message events
|
||||
@@ -67,14 +57,14 @@ func (s *ScheduledMessageEventHandler) AddScheduledMessageEvent(w http.ResponseW
|
||||
}
|
||||
defer r.Body.Close()
|
||||
|
||||
event := scheduling.ScheduledMessageEvent{RecipientId: req.RecipientId, MessageId: req.MessageId, ScheduledMessageId: req.ScheduledMessageId}
|
||||
event := scheduling.ScheduledMessageEvent{ContactId: req.ContactId, MessageId: req.MessageId, ScheduledMessageId: req.ScheduledMessageId}
|
||||
|
||||
var statusCode int
|
||||
var resp AddScheduledMessageEventResponse
|
||||
|
||||
if event.RecipientId == uuid.Nil {
|
||||
if event.ContactId == uuid.Nil {
|
||||
statusCode = http.StatusBadRequest
|
||||
resp.Message = "Recipient Id is nil"
|
||||
resp.Message = "Contact Id is nil"
|
||||
} else if event.MessageId == uuid.Nil {
|
||||
statusCode = http.StatusBadRequest
|
||||
resp.Message = "Message Id is nil"
|
||||
@@ -117,6 +107,11 @@ func (s *ScheduledMessageEventHandler) AddScheduledMessageEvent(w http.ResponseW
|
||||
RespondWithJSON(w, statusCode, &resp)
|
||||
}
|
||||
|
||||
type GetScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
// GetScheduledMessageEvent godoc
|
||||
// @Summary Get scheduled message event
|
||||
// @Description Gets a scheduled message event (requires JWT)
|
||||
@@ -181,6 +176,11 @@ func (s *ScheduledMessageEventHandler) GetScheduledMessageEvent(w http.ResponseW
|
||||
RespondWithJSON(w, statusCode, &resp)
|
||||
}
|
||||
|
||||
type DeleteScheduledMessageEventResponse struct {
|
||||
Message string `json:"message"`
|
||||
Data []scheduling.ScheduledMessageEvent `json:"data"`
|
||||
}
|
||||
|
||||
// DeleteScheduledMessageEvent godoc
|
||||
// @Summary Delete scheduled message event
|
||||
// @Description Deletes a scheduled message event (requires JWT)
|
||||
|
||||
@@ -9,8 +9,6 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"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"
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -20,14 +18,14 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
recipientId = uuid.New()
|
||||
contactId = uuid.New()
|
||||
messageId = uuid.New()
|
||||
scheduledMessageId = uuid.New()
|
||||
testUserId = uuid.New()
|
||||
)
|
||||
|
||||
type CreateScheduledMessageEventRequest struct {
|
||||
RecipientId uuid.UUID `json:"recipient_id"`
|
||||
ContactId uuid.UUID `json:"recipient_id"`
|
||||
MessageId uuid.UUID `json:"message_id"`
|
||||
ScheduledMessageId uuid.UUID `json:"scheduled_message_id"`
|
||||
}
|
||||
@@ -44,14 +42,14 @@ func TestCreateScheduledMessageEventWithMock(t *testing.T) {
|
||||
assert.NoError(t, err, "Error getting app")
|
||||
handler := NewScheduledMessageEventHandler(apiApp, mockStore, schMsgStore)
|
||||
|
||||
recipientId := uuid.New()
|
||||
contactId := uuid.New()
|
||||
messageId := uuid.New()
|
||||
scheduledMessageId := uuid.New()
|
||||
testUserId := uuid.New()
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
con := TestContact(contactId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
@@ -63,7 +61,7 @@ func TestCreateScheduledMessageEventWithMock(t *testing.T) {
|
||||
assert.NoError(t, err, "Error creating scheduled message: %v", err)
|
||||
}
|
||||
|
||||
testReq := CreateScheduledMessageEventRequest{RecipientId: recipientId, MessageId: messageId, ScheduledMessageId: scheduledMessageId}
|
||||
testReq := CreateScheduledMessageEventRequest{ContactId: contactId, MessageId: messageId, ScheduledMessageId: scheduledMessageId}
|
||||
jsonValue, _ := json.Marshal(testReq)
|
||||
|
||||
req, _ := http.NewRequest("POST", endpoint.AddEventToScheduledMessageEndpoint, strings.NewReader(string(jsonValue)))
|
||||
@@ -96,15 +94,15 @@ func TestGetScheduledMessageEventWithMock(t *testing.T) {
|
||||
assert.NoError(t, err, "Error getting app")
|
||||
handler := NewScheduledMessageEventHandler(apiApp, schMsgEventStore, schMsgStore)
|
||||
|
||||
recipientId := uuid.New()
|
||||
contactId := uuid.New()
|
||||
messageId := uuid.New()
|
||||
scheduledMessageId := uuid.New()
|
||||
testUserId := uuid.New()
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := testScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
con := TestContact(contactId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := TestScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
@@ -147,10 +145,10 @@ func TestDeleteScheduledMessageEventWithMock(t *testing.T) {
|
||||
assert.NoError(t, err, "Error getting app")
|
||||
handler := NewScheduledMessageEventHandler(apiApp, schMsgEventStore, schMsgStore)
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := testScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
con := TestContact(contactId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := TestScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
@@ -182,32 +180,3 @@ func TestDeleteScheduledMessageEventWithMock(t *testing.T) {
|
||||
|
||||
assert.NotEmpty(t, msgEvent.Created, "Created date should not be empty")
|
||||
}
|
||||
|
||||
func testContact(id uuid.UUID, userId uuid.UUID) contact.Contact {
|
||||
if id == uuid.Nil {
|
||||
id = uuid.New()
|
||||
return contact.Contact{Id: &id, PhoneNumber: "+10123456789", UserId: &userId}
|
||||
} else {
|
||||
return contact.Contact{Id: &id, PhoneNumber: "+10123456789", UserId: &userId}
|
||||
}
|
||||
}
|
||||
|
||||
func testMessage(id uuid.UUID, userId uuid.UUID) message.Message {
|
||||
if id == uuid.Nil {
|
||||
return message.Message{Id: uuid.New(), Content: "Oh how the mighty have fallen", UserId: userId}
|
||||
} else {
|
||||
return message.Message{Id: id, Content: "Oh how the mighty have fallen", UserId: userId}
|
||||
}
|
||||
}
|
||||
|
||||
func testScheduledMessage(id uuid.UUID, userId uuid.UUID, now time.Time) scheduling.ScheduledMessage {
|
||||
if id == uuid.Nil {
|
||||
return scheduling.ScheduledMessage{Id: uuid.New(), UserId: userId, Scheduled: now.Add(20 * time.Minute), Status: scheduling.Pending}
|
||||
} else {
|
||||
return scheduling.ScheduledMessage{Id: id, UserId: userId, Scheduled: now.Add(20 * time.Minute), Status: scheduling.Pending}
|
||||
}
|
||||
}
|
||||
|
||||
func testScheduledMessageEvent(messageId, recipientId, scheduledMessageId uuid.UUID) scheduling.ScheduledMessageEvent {
|
||||
return scheduling.ScheduledMessageEvent{MessageId: messageId, RecipientId: recipientId, ScheduledMessageId: scheduledMessageId}
|
||||
}
|
||||
|
||||
@@ -89,15 +89,15 @@ func TestFetchScheduledMessageWithMock(t *testing.T) {
|
||||
messageStore := mock.NewMockMessageStore()
|
||||
schMsgEventStore := mock.NewMockScheduledMessageEventStore()
|
||||
|
||||
recipientId := uuid.New()
|
||||
contactId := uuid.New()
|
||||
messageId := uuid.New()
|
||||
scheduledMessageId := uuid.New()
|
||||
testUserId := uuid.New()
|
||||
|
||||
con := testContact(recipientId, testUserId)
|
||||
msg := testMessage(messageId, testUserId)
|
||||
schMsg := testScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := testScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
con := TestContact(contactId, testUserId)
|
||||
msg := TestMessage(messageId, testUserId)
|
||||
schMsg := TestScheduledMessage(scheduledMessageId, testUserId, now)
|
||||
event := TestScheduledMessageEvent(msg.Id, *con.Id, schMsg.Id)
|
||||
|
||||
ctx := t.Context()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user