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

Method Delete

api/pkg/services/phone_service.go:180–217  ·  view source on GitHub ↗

Delete an entities.Phone

(ctx context.Context, source string, userID entities.UserID, phoneID uuid.UUID)

Source from the content-addressed store, hash-verified

178
179// Delete an entities.Phone
180func (service *PhoneService) Delete(ctx context.Context, source string, userID entities.UserID, phoneID uuid.UUID) error {
181 ctx, span := service.tracer.Start(ctx)
182 defer span.End()
183
184 ctxLogger := service.tracer.CtxLogger(service.logger, span)
185
186 phone, err := service.repository.LoadByID(ctx, userID, phoneID)
187 if err != nil {
188 msg := fmt.Sprintf("cannot load phone with userID [%s] and phoneID [%s]", userID, phoneID)
189 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
190 }
191
192 if err = service.repository.Delete(ctx, userID, phoneID); err != nil {
193 msg := fmt.Sprintf("cannot delete phone with id [%s] and user id [%s]", phoneID, userID)
194 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
195 }
196
197 ctxLogger.Info(fmt.Sprintf("deleted phone with id [%s] and user id [%s]", phoneID, userID))
198
199 event, err := service.createPhoneDeletedEvent(source, events.PhoneDeletedPayload{
200 PhoneID: phone.ID,
201 UserID: phone.UserID,
202 Timestamp: phone.UpdatedAt,
203 Owner: phone.PhoneNumber,
204 SIM: phone.SIM,
205 })
206 if err != nil {
207 msg := "cannot create event when phone is deleted"
208 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
209 }
210
211 if err = service.dispatcher.Dispatch(ctx, event); err != nil {
212 msg := fmt.Sprintf("cannot dispatch event [%s] for phone with id [%s]", event.Type(), phone.ID)
213 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
214 }
215
216 return nil
217}
218
219// PhoneFCMTokenParams are parameters for upserting an entities.Phone
220type PhoneFCMTokenParams struct {

Callers

nothing calls this directly

Calls 8

StartMethod · 0.65
CtxLoggerMethod · 0.65
LoadByIDMethod · 0.65
WrapErrorSpanMethod · 0.65
DeleteMethod · 0.65
InfoMethod · 0.65
DispatchMethod · 0.45

Tested by

no test coverage detected