Skip to content

Commit 07ff0c4

Browse files
committed
Return 404 error code when message does not exist
1 parent 87fa582 commit 07ff0c4

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

api/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
// @license.url https://raw.githubusercontent.com/NdoleStudio/http-sms-manager/main/LICENSE
1919
//
2020
// @host api.httpsms.com
21+
// @schemes https
2122
// @BasePath /v1
2223
func main() {
2324
if len(os.Args) == 1 {

api/pkg/handlers/message_handler.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ func (h *MessageHandler) PostEvent(c *fiber.Ctx) error {
202202
}
203203

204204
request.MessageID = c.Params("messageID")
205-
spew.Dump(request)
206205
if errors := h.validator.ValidateMessageEvent(ctx, request); len(errors) != 0 {
207206
msg := fmt.Sprintf("validation errors [%s], while storing event [%s] for message [%s]", spew.Sdump(errors), c.Body(), request.MessageID)
208207
ctxLogger.Warn(stacktrace.NewError(msg))
@@ -214,10 +213,16 @@ func (h *MessageHandler) PostEvent(c *fiber.Ctx) error {
214213
return h.responseNotFound(c, fmt.Sprintf("cannot find message with ID [%s]", request.MessageID))
215214
}
216215

216+
if err != nil {
217+
msg := fmt.Sprintf("cannot find message with id [%s]", request.MessageID)
218+
ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
219+
return h.responseInternalServerError(c)
220+
}
221+
217222
message, err = h.service.StoreEvent(ctx, message, request.ToMessageStoreEventParams(c.OriginalURL()))
218223
if err != nil {
219224
msg := fmt.Sprintf("cannot store event for message [%s] with paylod [%s]", request.MessageID, c.Body())
220-
ctxLogger.Error(stacktrace.Propagate(err, msg))
225+
ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
221226
return h.responseInternalServerError(c)
222227
}
223228

api/pkg/repositories/gorm_message_repository.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package repositories
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67

78
"gorm.io/gorm/clause"
@@ -73,7 +74,13 @@ func (repository *gormMessageRepository) Load(ctx context.Context, messageID uui
7374
defer span.End()
7475

7576
message := new(entities.Message)
76-
if err := repository.db.First(message, messageID).Error; err != nil {
77+
err := repository.db.First(message, messageID).Error
78+
if errors.Is(err, gorm.ErrRecordNotFound) {
79+
msg := fmt.Sprintf("message with ID [%s] does not exist", message.ID)
80+
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.PropagateWithCode(err, ErrCodeNotFound, msg))
81+
}
82+
83+
if err != nil {
7784
msg := fmt.Sprintf("cannot load message with ID [%s]", messageID)
7885
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
7986
}

0 commit comments

Comments
 (0)