Closes #20 Reviewed-on: phoenix/textsender-api#23 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
34 lines
835 B
Go
34 lines
835 B
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
|
|
"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,
|
|
)
|
|
}
|