tsk-33: Tweak get schedule message event endpoint (#37)
Closes #33 Reviewed-on: phoenix/textsender-api#37 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
@@ -8,6 +8,6 @@ const ADD_CONTACT_ENDPOINT = "/api/v1/contact/new"
|
|||||||
const ScheduleMessageEndpoint = "/api/v1/schedule/message"
|
const ScheduleMessageEndpoint = "/api/v1/schedule/message"
|
||||||
const GetScheduledMessageEndpoint = "/api/v1/schedule/message"
|
const GetScheduledMessageEndpoint = "/api/v1/schedule/message"
|
||||||
const AddEventToScheduledMessageEndpoint = "/api/v1/schedule/message/event"
|
const AddEventToScheduledMessageEndpoint = "/api/v1/schedule/message/event"
|
||||||
const GetScheduledMessageEventEndpoint = "/api/v1/schedule/message/event/{id}"
|
const GetScheduledMessageEventEndpoint = "/api/v1/schedule/message/event"
|
||||||
const DeleteScheduledMessageEventEndpoint = "/api/v1/schedule/message/event/{id}"
|
const DeleteScheduledMessageEventEndpoint = "/api/v1/schedule/message/event/{id}"
|
||||||
const UpdateScheduledMessageStatusEndpoint = "/api/v1/schedule/message/status/update"
|
const UpdateScheduledMessageStatusEndpoint = "/api/v1/schedule/message/status/update"
|
||||||
|
|||||||
@@ -109,26 +109,23 @@ func (s *ScheduledMessageEventHandler) GetScheduledMessageEvent(w http.ResponseW
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
id := chi.URLParam(r, "id")
|
var id, scheduledMessageId uuid.UUID
|
||||||
if len(id) == 0 {
|
if idParam, err := ParseQueryParams(r, "id"); err == nil {
|
||||||
pathParts := strings.Split(r.URL.Path, "/")
|
id, err = uuid.Parse(*idParam)
|
||||||
if len(pathParts) < 7 {
|
}
|
||||||
http.Error(w, "Id not provided", http.StatusBadRequest)
|
if scheduledMessageIdParam, err := ParseQueryParams(r, "scheduled_message_id"); err == nil {
|
||||||
return
|
scheduledMessageId, err = uuid.Parse(*scheduledMessageIdParam)
|
||||||
} else {
|
|
||||||
id = pathParts[6]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var statusCode int
|
var statusCode int
|
||||||
var resp GetScheduledMessageEventResponse
|
var resp GetScheduledMessageEventResponse
|
||||||
|
ctx := r.Context()
|
||||||
|
|
||||||
if parsedId, err := uuid.Parse(id); err != nil {
|
if id == uuid.Nil && scheduledMessageId == uuid.Nil {
|
||||||
resp.Message = err.Error()
|
|
||||||
statusCode = http.StatusBadRequest
|
statusCode = http.StatusBadRequest
|
||||||
} else {
|
resp.Message = "Query parameters missing"
|
||||||
ctx := r.Context()
|
} else if id != uuid.Nil {
|
||||||
if event, err := s.ScheduledMessageEventStore.Get(ctx, parsedId); err != nil {
|
if event, err := s.ScheduledMessageEventStore.Get(ctx, id); err != nil {
|
||||||
resp.Message = err.Error()
|
resp.Message = err.Error()
|
||||||
statusCode = http.StatusInternalServerError
|
statusCode = http.StatusInternalServerError
|
||||||
} else {
|
} else {
|
||||||
@@ -141,6 +138,17 @@ func (s *ScheduledMessageEventHandler) GetScheduledMessageEvent(w http.ResponseW
|
|||||||
resp.Message = "Scheduled message event not found"
|
resp.Message = "Scheduled message event not found"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if events, err := s.ScheduledMessageEventStore.GetWithScheduleMessageId(ctx, scheduledMessageId); err != nil {
|
||||||
|
statusCode = http.StatusInternalServerError
|
||||||
|
resp.Message = err.Error()
|
||||||
|
} else {
|
||||||
|
statusCode = http.StatusOK
|
||||||
|
resp.Message = "Successful"
|
||||||
|
for _, event := range events {
|
||||||
|
resp.Data = append(resp.Data, *event)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RespondWithJSON(w, statusCode, &resp)
|
RespondWithJSON(w, statusCode, &resp)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package handler
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -113,8 +114,9 @@ func TestGetScheduledMessageEventWithMock(t *testing.T) {
|
|||||||
assert.NoError(t, err, "Error creating scheduled message event: %v", err)
|
assert.NoError(t, err, "Error creating scheduled message event: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
endpointValue := strings.Replace(endpoint.GetScheduledMessageEventEndpoint, "{id}", event.Id.String(), 1)
|
url := fmt.Sprintf("%s?id=%s", endpoint.GetScheduledMessageEventEndpoint, event.Id.String())
|
||||||
req, _ := http.NewRequest("GET", endpointValue, nil)
|
fmt.Println("Url:", url)
|
||||||
|
req, _ := http.NewRequest("GET", url, nil)
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
handler.GetScheduledMessageEvent(rr, req)
|
handler.GetScheduledMessageEvent(rr, req)
|
||||||
|
|||||||
Reference in New Issue
Block a user