tsk-9: Schedule queued message endpoint (#22)

Closes #9

Reviewed-on: phoenix/textsender-api#22
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-11-09 04:32:30 +00:00
committed by phoenix
parent 0eba955ddf
commit 5f9bfa8fe2
9 changed files with 247 additions and 5 deletions
+36
View File
@@ -0,0 +1,36 @@
package store
import (
"context"
// "fmt"
// "github.com/google/uuid"
// "github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgxpool"
"git.kundeng.us/phoenix/textsender-models/pkg/message/scheduling"
)
type ScheduledMessageStore interface {
CreateScheduledMessage(ctx context.Context, schedMsg *scheduling.ScheduledMessage) error
}
type PGScheduledMessageStore struct {
db *pgxpool.Pool
}
func NewScheduledMessageStore(db *pgxpool.Pool) *PGScheduledMessageStore {
return &PGScheduledMessageStore{db: db}
}
func (s *PGScheduledMessageStore) CreateScheduledMessage(ctx context.Context, schedMsg *scheduling.ScheduledMessage) error {
query := `
INSERT INTO scheduled_messages (scheduled, status, user_id)
VALUES ($1, $2, $3)
RETURNING id, created
`
return s.db.QueryRow(ctx, query, schedMsg.Scheduled, schedMsg.Status, schedMsg.UserId).Scan(
&schedMsg.Id, &schedMsg.Created,
)
}