storeSentMessage a new message
(ctx context.Context, payload events.MessageAPISentPayload)
| 1052 | |
| 1053 | // storeSentMessage a new message |
| 1054 | func (service *MessageService) storeSentMessage(ctx context.Context, payload events.MessageAPISentPayload) (*entities.Message, error) { |
| 1055 | ctx, span := service.tracer.Start(ctx) |
| 1056 | defer span.End() |
| 1057 | |
| 1058 | ctxLogger := service.tracer.CtxLogger(service.logger, span) |
| 1059 | |
| 1060 | timestamp := payload.RequestReceivedAt |
| 1061 | if payload.ScheduledSendTime != nil { |
| 1062 | timestamp = *payload.ScheduledSendTime |
| 1063 | } |
| 1064 | |
| 1065 | message := &entities.Message{ |
| 1066 | ID: payload.MessageID, |
| 1067 | Owner: payload.Owner, |
| 1068 | Contact: payload.Contact, |
| 1069 | UserID: payload.UserID, |
| 1070 | Content: payload.Content, |
| 1071 | Attachments: payload.Attachments, |
| 1072 | RequestID: payload.RequestID, |
| 1073 | SIM: payload.SIM, |
| 1074 | Encrypted: payload.Encrypted, |
| 1075 | ScheduledSendTime: payload.ScheduledSendTime, |
| 1076 | Type: entities.MessageTypeMobileTerminated, |
| 1077 | Status: entities.MessageStatusPending, |
| 1078 | RequestReceivedAt: payload.RequestReceivedAt, |
| 1079 | CreatedAt: time.Now().UTC(), |
| 1080 | UpdatedAt: time.Now().UTC(), |
| 1081 | MaxSendAttempts: payload.MaxSendAttempts, |
| 1082 | OrderTimestamp: timestamp, |
| 1083 | } |
| 1084 | |
| 1085 | if err := service.repository.Store(ctx, message); err != nil { |
| 1086 | msg := fmt.Sprintf("cannot save message with id [%s]", payload.MessageID) |
| 1087 | return nil, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)) |
| 1088 | } |
| 1089 | |
| 1090 | ctxLogger.Info(fmt.Sprintf("message saved with id [%s]", payload.MessageID)) |
| 1091 | return message, nil |
| 1092 | } |
| 1093 | |
| 1094 | // storeMissedCallMessage a new message |
| 1095 | func (service *MessageService) storeMissedCallMessage(ctx context.Context, payload *events.MessageCallMissedPayload) (*entities.Message, error) { |
no test coverage detected