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)
| 407 | // @Failure 500 {object} responses.InternalServerError |
| 408 | // @Router /messages/{messageID} [delete] |
| 409 | func (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. |
nothing calls this directly
no test coverage detected