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

Method HandleMessageFailed

api/pkg/services/message_service.go:758–782  ·  view source on GitHub ↗

HandleMessageFailed handles when a message could not be sent by a mobile phone

(ctx context.Context, params HandleMessageFailedParams)

Source from the content-addressed store, hash-verified

756
757// HandleMessageFailed handles when a message could not be sent by a mobile phone
758func (service *MessageService) HandleMessageFailed(ctx context.Context, params HandleMessageFailedParams) error {
759 ctx, span := service.tracer.Start(ctx)
760 defer span.End()
761
762 ctxLogger := service.tracer.CtxLogger(service.logger, span)
763
764 message, err := service.repository.Load(ctx, params.UserID, params.ID)
765 if err != nil {
766 msg := fmt.Sprintf("cannot find message with id [%s]", params.ID)
767 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
768 }
769
770 if message.IsDelivered() {
771 msg := fmt.Sprintf("message has already been delivered with status [%s]", message.Status)
772 return service.tracer.WrapErrorSpan(span, stacktrace.NewError(msg))
773 }
774
775 if err = service.repository.Update(ctx, message.Failed(params.Timestamp, params.ErrorMessage)); err != nil {
776 msg := fmt.Sprintf("cannot update message with id [%s] as sent", message.ID)
777 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
778 }
779
780 ctxLogger.Info(fmt.Sprintf("message with id [%s] has been updated to status [%s]", message.ID, message.Status))
781 return nil
782}
783
784// HandleMessageDelivered handles when a message is has been delivered by a mobile phone
785func (service *MessageService) HandleMessageDelivered(ctx context.Context, params HandleMessageParams) error {

Callers 1

OnMessagePhoneFailedMethod · 0.80

Calls 8

IsDeliveredMethod · 0.80
FailedMethod · 0.80
StartMethod · 0.65
CtxLoggerMethod · 0.65
LoadMethod · 0.65
WrapErrorSpanMethod · 0.65
UpdateMethod · 0.65
InfoMethod · 0.65

Tested by

no test coverage detected