MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / Delete

Method Delete

api/pkg/handlers/message_handler.go:409–440  ·  view source on GitHub ↗

Delete a message @Summary Delete a message from the database. @Description Delete a message from the database and removes the message content from the list of threads. @Security ApiKeyAuth @Tags Messages @Accept json @Produce json @Param messageID path string tr

(c fiber.Ctx)

Source from the content-addressed store, hash-verified

407// @Failure 500 {object} responses.InternalServerError
408// @Router /messages/{messageID} [delete]
409func (h *MessageHandler) Delete(c fiber.Ctx) error {
410 ctx, span := h.tracer.StartFromFiberCtx(c)
411 defer span.End()
412
413 ctxLogger := h.tracer.CtxLogger(h.logger, span)
414
415 messageID := c.Params("messageID")
416 if errors := h.validator.ValidateUUID(messageID, "messageID"); len(errors) != 0 {
417 msg := fmt.Sprintf("validation errors [%s], while deleting a message with ID [%s]", spew.Sdump(errors), messageID)
418 ctxLogger.Warn(stacktrace.NewError(msg))
419 return h.responseUnprocessableEntity(c, errors, "validation errors while storing event")
420 }
421
422 message, err := h.service.GetMessage(ctx, h.userIDFomContext(c), uuid.MustParse(messageID))
423 if stacktrace.GetCode(err) == repositories.ErrCodeNotFound {
424 return h.responseNotFound(c, fmt.Sprintf("cannot find message with ID [%s]", messageID))
425 }
426
427 if err != nil {
428 msg := fmt.Sprintf("cannot find message with id [%s]", messageID)
429 ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
430 return h.responseInternalServerError(c)
431 }
432
433 if err = h.service.DeleteMessage(ctx, c.OriginalURL(), message); err != nil {
434 msg := fmt.Sprintf("cannot delete message with ID [%s] for user with ID [%s]", messageID, message.UserID)
435 ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
436 return h.responseInternalServerError(c)
437 }
438
439 return h.responseNoContent(c, "message deleted successfully")
440}
441
442// Get a message
443// @Summary Get a message from the database.

Callers

nothing calls this directly

Calls 13

ValidateUUIDMethod · 0.80
GetMessageMethod · 0.80
userIDFomContextMethod · 0.80
responseNotFoundMethod · 0.80
DeleteMessageMethod · 0.80
responseNoContentMethod · 0.80
StartFromFiberCtxMethod · 0.65
CtxLoggerMethod · 0.65
WarnMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected