From 8728fe9b6071117201826bb9129ddfc70aa301ad Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 30 Dec 2025 19:13:51 -0500 Subject: [PATCH] tsk-59: Added code to get MessageEventResponse --- .../store/message_event_response_store.go | 25 +++++++++++++++++++ .../mock/message_event_response_store.go | 2 ++ 2 files changed, 27 insertions(+) diff --git a/internal/store/message_event_response_store.go b/internal/store/message_event_response_store.go index 031d25e..4075772 100644 --- a/internal/store/message_event_response_store.go +++ b/internal/store/message_event_response_store.go @@ -11,6 +11,7 @@ import ( type MessageEventResponseStore interface { Create(ctx context.Context, mer *message.MessageEventResponse) error + GetWithUserId(ctx context.Context, userId uuid.UUID) ([]*message.MessageEventResponse, error) } type PGMessageEventResponseStore struct { @@ -34,3 +35,27 @@ func (m *PGMessageEventResponseStore) Create(ctx context.Context, mer *message.M return m.db.QueryRow(ctx, query, mer.ScheduledMessageEventId, mer.Response, mer.UserId, mer.Sent, mer.ContactId, mer.MessageId).Scan(&mer.Id) } } + +func (m *PGMessageEventResponseStore) GetWithUserId(ctx context.Context, userId uuid.UUID) ([]*message.MessageEventResponse, error) { + query := "SELECT id, scheduled_message_event_id, response, user_id, sent, contact_id, message_id FROM message_event_responses WHERE user_id = $1" + rows, err := m.db.Query(ctx, query) + if err != nil { + return nil, fmt.Errorf("Error querying: %w", err) + } + defer rows.Close() + + var sentMessages []*message.MessageEventResponse + for rows.Next() { + var msg message.MessageEventResponse + if err := rows.Scan(&msg.Id, &msg.ScheduledMessageEventId, &msg.Response, &msg.UserId, &msg.Sent, &msg.ContactId, &msg.MessageId,); err != nil { + return nil, fmt.Errorf("Scanning row: %w", err) + } + sentMessages = append(sentMessages, &msg) + } + + if err := rows.Err(); err != nil { + return nil, fmt.Errorf("Iterating message_event_responses: %w", err) + } + + return sentMessages, nil +} diff --git a/internal/store/mock/message_event_response_store.go b/internal/store/mock/message_event_response_store.go index a06a7b0..3833738 100644 --- a/internal/store/mock/message_event_response_store.go +++ b/internal/store/mock/message_event_response_store.go @@ -60,3 +60,5 @@ func (m *MockMessageEventResponseStore) Create(ctx context.Context, mer *message return nil } } + +// TODO: Add code to get mock MessageEventResponse