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

Method Delete

api/pkg/handlers/message_thread_handler.go:155–184  ·  view source on GitHub ↗

Delete a message thread @Summary Delete a message thread from the database. @Description Delete a message thread from the database and also deletes all the messages in the thread. @Security ApiKeyAuth @Tags MessageThreads @Accept json @Produce json @Param messageThreadID

(c fiber.Ctx)

Source from the content-addressed store, hash-verified

153// @Failure 500 {object} responses.InternalServerError
154// @Router /message-threads/{messageThreadID} [delete]
155func (h *MessageThreadHandler) Delete(c fiber.Ctx) error {
156 ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
157 defer span.End()
158
159 messageThreadID := c.Params("messageThreadID")
160 if errors := h.validator.ValidateUUID(messageThreadID, "messageThreadID"); len(errors) != 0 {
161 msg := fmt.Sprintf("validation errors [%s], while deleting a thread thread with ID [%s]", spew.Sdump(errors), messageThreadID)
162 ctxLogger.Warn(stacktrace.NewError(msg))
163 return h.responseUnprocessableEntity(c, errors, "validation errors while deleting a thread thread")
164 }
165
166 thread, err := h.service.GetThread(ctx, h.userIDFomContext(c), uuid.MustParse(messageThreadID))
167 if stacktrace.GetCode(err) == repositories.ErrCodeNotFound {
168 return h.responseNotFound(c, fmt.Sprintf("cannot find thread thread with ID [%s]", messageThreadID))
169 }
170
171 if err != nil {
172 msg := fmt.Sprintf("cannot find thread thread with id [%s]", messageThreadID)
173 ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
174 return h.responseInternalServerError(c)
175 }
176
177 if err = h.service.DeleteThread(ctx, c.OriginalURL(), thread); err != nil {
178 msg := fmt.Sprintf("cannot delete thread thread with ID [%s] for user with ID [%s]", messageThreadID, thread.UserID)
179 ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
180 return h.responseInternalServerError(c)
181 }
182
183 return h.responseNoContent(c, "thread thread deleted successfully")
184}

Callers

nothing calls this directly

Calls 12

ValidateUUIDMethod · 0.80
GetThreadMethod · 0.80
userIDFomContextMethod · 0.80
responseNotFoundMethod · 0.80
DeleteThreadMethod · 0.80
responseNoContentMethod · 0.80
WarnMethod · 0.65
ErrorMethod · 0.65
WrapErrorSpanMethod · 0.65

Tested by

no test coverage detected