Skip to content

Commit 7ed6db8

Browse files
committed
Do not throw exception when upserting a new phone
1 parent a787502 commit 7ed6db8

4 files changed

Lines changed: 13 additions & 10 deletions

File tree

‎api/pkg/middlewares/api_key_auth_middleware.go‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ func APIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepository
2020
ctxLogger := tracer.CtxLogger(logger, span)
2121

2222
apiKey := c.Get(authHeaderAPIKey)
23-
if len(apiKey) == 0 {
24-
span.AddEvent(fmt.Sprintf("the request header has no [%s] api key", authHeaderAPIKey))
23+
if len(apiKey) == 0 || apiKey == "undefined" {
24+
span.AddEvent(fmt.Sprintf("the request header has no [%s] header", authHeaderAPIKey))
2525
return c.Next()
2626
}
2727

@@ -30,11 +30,8 @@ func APIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepository
3030
ctxLogger.Error(stacktrace.Propagate(err, fmt.Sprintf("cannot load user with api key [%s]", apiKey)))
3131
return c.Next()
3232
}
33-
3433
c.Locals(ContextKeyAuthUserID, authUser)
35-
3634
ctxLogger.Info(fmt.Sprintf("[%T] set successfully for user with ID [%s]", authUser, authUser.ID))
37-
3835
return c.Next()
3936
}
4037
}

‎api/pkg/middlewares/bearer_auth_middleware.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ func BearerAuth(logger telemetry.Logger, tracer telemetry.Tracer, authClient *au
3333

3434
token, err := authClient.VerifyIDToken(context.Background(), authToken)
3535
if err != nil {
36-
msg := fmt.Sprintf("invalid firebase id token %s", authToken)
37-
ctxLogger.Error(tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
36+
msg := fmt.Sprintf("invalid firebase id token [%s]", authToken)
37+
ctxLogger.Warn(tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
3838
return c.Next()
3939
}
4040

‎api/pkg/repositories/gorm_phone_repository.go‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77

88
"github.com/google/uuid"
9+
"gorm.io/gorm/clause"
910

1011
"github.com/NdoleStudio/httpsms/pkg/entities"
1112
"github.com/NdoleStudio/httpsms/pkg/telemetry"
@@ -78,7 +79,12 @@ func (repository *gormPhoneRepository) Save(ctx context.Context, phone *entities
7879
ctx, span := repository.tracer.Start(ctx)
7980
defer span.End()
8081

81-
if err := repository.db.WithContext(ctx).Save(phone).Error; err != nil {
82+
err := repository.db.
83+
Clauses(clause.OnConflict{DoNothing: true, OnConstraint: "idx__phones__user_id__phone_number"}).
84+
WithContext(ctx).
85+
Save(phone).
86+
Error
87+
if err != nil {
8288
msg := fmt.Sprintf("cannot save phone with ID [%s]", phone.ID)
8389
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
8490
}

‎api/pkg/services/message_service.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -487,8 +487,8 @@ func (service *MessageService) HandleMessageDelivered(ctx context.Context, param
487487
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
488488
}
489489

490-
if !message.IsSent() && !message.IsSending() && !message.IsExpired() {
491-
msg := fmt.Sprintf("message has wrong status [%s]. expected [%s, %s, %s]", message.Status, entities.MessageStatusSent, entities.MessageStatusSending, entities.MessageStatusExpired)
490+
if !message.IsSent() && !message.IsSending() && !message.IsExpired() && !message.IsScheduled() {
491+
msg := fmt.Sprintf("message has wrong status [%s]. expected [%s, %s, %s, %s]", message.Status, entities.MessageStatusSent, entities.MessageStatusScheduled, entities.MessageStatusSending, entities.MessageStatusExpired)
492492
return service.tracer.WrapErrorSpan(span, stacktrace.NewError(msg))
493493
}
494494

0 commit comments

Comments
 (0)