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

Method UpdateSubscription

api/pkg/services/user_service.go:509–537  ·  view source on GitHub ↗

UpdateSubscription updates a subscription for an entities.User

(ctx context.Context, params *events.UserSubscriptionUpdatedPayload)

Source from the content-addressed store, hash-verified

507
508// UpdateSubscription updates a subscription for an entities.User
509func (service *UserService) UpdateSubscription(ctx context.Context, params *events.UserSubscriptionUpdatedPayload) error {
510 ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
511 defer span.End()
512
513 user, err := service.repository.Load(ctx, params.UserID)
514 if err != nil {
515 msg := fmt.Sprintf("could not get [%T] with with ID [%s]", user, params.UserID)
516 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
517 }
518
519 if params.SubscriptionStatus != "active" {
520 msg := fmt.Sprintf("subscription status is [%s] for [%T] with with ID [%s]", params.SubscriptionStatus, user, params.UserID)
521 ctxLogger.Info(msg)
522 return nil
523 }
524
525 user.SubscriptionID = &params.SubscriptionID
526 user.SubscriptionName = params.SubscriptionName
527 user.SubscriptionEndsAt = params.SubscriptionEndsAt
528 user.SubscriptionRenewsAt = &params.SubscriptionRenewsAt
529 user.SubscriptionStatus = &params.SubscriptionStatus
530
531 if err = service.repository.Update(ctx, user); err != nil {
532 msg := fmt.Sprintf("could not update [%T] with with ID [%s] after subscription update", user, params.UserID)
533 return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
534 }
535
536 return nil
537}
538
539// DeleteAuthUser deletes an entities.AuthContext from firebase
540func (service *UserService) DeleteAuthUser(ctx context.Context, userID entities.UserID) error {

Callers 1

Calls 5

StartWithLoggerMethod · 0.65
LoadMethod · 0.65
WrapErrorSpanMethod · 0.65
InfoMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected