tsk-51: Send message endpoint (#52)

Closes #51

Reviewed-on: phoenix/textsender-api#52
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-12-10 21:35:02 +00:00
committed by phoenix
parent 20ffc45f89
commit 0d252bc261
32 changed files with 753 additions and 96 deletions
+12 -6
View File
@@ -2,8 +2,10 @@ package store
import (
"context"
"fmt"
"git.kundeng.us/phoenix/textsender-models/tx0/message"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgxpool"
)
@@ -20,11 +22,15 @@ func NewMessageEventResponseStore(db *pgxpool.Pool) *PGMessageEventResponseStore
}
func (m *PGMessageEventResponseStore) Create(ctx context.Context, mer *message.MessageEventResponse) error {
query := `
INSERT INTO message_event_responses (scheduled_message_event_id, response, user_id, sent)
VALUES ($1, $2, $3, $4)
RETURNING id
`
var query string
queryBase := "INSERT INTO message_event_responses"
queryReturn := "RETURNING id"
return m.db.QueryRow(ctx, query, mer.ScheduledMessageEventId, mer.Response, mer.UserId, mer.Sent).Scan(&mer.Id)
if mer.ScheduledMessageEventId == uuid.Nil {
query = fmt.Sprintf("%s (response, user_id, sent) VALUES ($1, $2, $3) %s", queryBase, queryReturn)
return m.db.QueryRow(ctx, query, mer.Response, mer.UserId, mer.Sent).Scan(&mer.Id)
} else {
query = fmt.Sprintf("%s (scheduled_message_event_id, response, user_id, sent) %s", queryBase, queryReturn)
return m.db.QueryRow(ctx, query, mer.ScheduledMessageEventId, mer.Response, mer.UserId, mer.Sent).Scan(&mer.Id)
}
}