tsk-29: Place restrictions on adding scheduled message event (#30)
Closes #29 Reviewed-on: phoenix/textsender-api#30 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
@@ -2,13 +2,17 @@ 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 {
|
||||
Get(ctx context.Context, id uuid.UUID) (*scheduling.ScheduledMessage, error)
|
||||
CreateScheduledMessage(ctx context.Context, schedMsg *scheduling.ScheduledMessage) error
|
||||
}
|
||||
|
||||
@@ -20,6 +24,25 @@ func NewScheduledMessageStore(db *pgxpool.Pool) *PGScheduledMessageStore {
|
||||
return &PGScheduledMessageStore{db: db}
|
||||
}
|
||||
|
||||
func (s *PGScheduledMessageStore) Get(ctx context.Context, id uuid.UUID) (*scheduling.ScheduledMessage, error) {
|
||||
query := `
|
||||
SELECT id, scheduled, created, status, user_id FROM scheduled_messages WHERE id = $1
|
||||
`
|
||||
|
||||
var schMsg scheduling.ScheduledMessage
|
||||
err := s.db.QueryRow(ctx, query, id).Scan(
|
||||
&schMsg.Id, &schMsg.Scheduled, &schMsg.Created, &schMsg.Status, &schMsg.UserId,
|
||||
)
|
||||
|
||||
if err == pgx.ErrNoRows {
|
||||
return nil, fmt.Errorf("No rows")
|
||||
} else if err != nil {
|
||||
return nil, fmt.Errorf("Getting scheduled message: %w", err)
|
||||
}
|
||||
|
||||
return &schMsg, nil
|
||||
}
|
||||
|
||||
func (s *PGScheduledMessageStore) CreateScheduledMessage(ctx context.Context, schedMsg *scheduling.ScheduledMessage) error {
|
||||
query := `
|
||||
INSERT INTO scheduled_messages (scheduled, status, user_id)
|
||||
|
||||
Reference in New Issue
Block a user