From b58174eef2b56eae4d828b24ff73620be5e2df1d Mon Sep 17 00:00:00 2001 From: phoenix Date: Wed, 31 Dec 2025 14:44:43 -0500 Subject: [PATCH] tsk-59: Got the code for MER and added TODO --- internal/handler/endpoint/endpoint.go | 1 + internal/handler/message_event_response.go | 35 ++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/internal/handler/endpoint/endpoint.go b/internal/handler/endpoint/endpoint.go index dd45add..c6bda68 100644 --- a/internal/handler/endpoint/endpoint.go +++ b/internal/handler/endpoint/endpoint.go @@ -12,6 +12,7 @@ const GetScheduledMessageEventEndpoint = "/api/v1/schedule/message/event" const DeleteScheduledMessageEventEndpoint = "/api/v1/schedule/message/event/{id}" const UpdateScheduledMessageStatusEndpoint = "/api/v1/schedule/message/status/update" const FetchNextScheduledMessageEndpoint = "/api/v1/schedule/message/fetch" +// TODO: Tweak endpoint verbage for MessageEventResponse endpoint // TODO: Make RecordEventResponse more consistent with MessageEventResponse const RecordEventResponse = "/api/v1/schedule/message/event/response/record" const FetchMessageEventResponse = "/api/v1/schedule/message/event/response" diff --git a/internal/handler/message_event_response.go b/internal/handler/message_event_response.go index 40768d0..f90a8bf 100644 --- a/internal/handler/message_event_response.go +++ b/internal/handler/message_event_response.go @@ -93,8 +93,43 @@ type GetMessageEventResponseFetchedResponse struct { } func (e *EventResponseHandler) Fetch(w http.ResponseWriter, r *http.Request) { + queryParams := r.URL.Query() + var userId uuid.UUID + + if _, exists := queryParams["user_id"]; !exists { + http.Error(w, "Query params", http.StatusBadRequest) + return + } else { + var err error + userId, err = uuid.Parse(queryParams.Get("user_id")) + if err != nil { + http.Error(w, "Query params", http.StatusBadRequest) + return + } + } + var statusCode int var resp GetMessageEventResponseFetchedResponse + if userId == uuid.Nil { + statusCode = http.StatusBadRequest + resp.Message = "User Id is nil" + } else { + ctx := r.Context() + if sentMessages, err := e.MessageEventResponseStore.GetWithUserId(ctx, userId); err != nil { + statusCode = http.StatusInternalServerError + resp.Message = err.Error() + } else { + if len(sentMessages) == 0 { + statusCode = http.StatusNotFound + resp.Message = "Not MessageEventResponses found" + } else { + statusCode = http.StatusOK + resp.Message = "Successful" + resp.Data = sentMessages + } + } + } + RespondWithJSON(w, statusCode, &resp) }