Skip to content

Commit

Permalink
fix: better error handling on transfercheck
Browse files Browse the repository at this point in the history
  • Loading branch information
Pascal-Delange committed Oct 28, 2024
1 parent 4e27840 commit 162f17e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
6 changes: 4 additions & 2 deletions api/present_error.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import (
"github.com/gin-gonic/gin"
)

const timeoutMst = "Sorry, the API timed out. Please try again later."

func presentError(ctx context.Context, c *gin.Context, err error) bool {
if err == nil {
return false
Expand Down Expand Up @@ -43,10 +45,10 @@ func presentError(ctx context.Context, c *gin.Context, err error) bool {

case errors.Is(err, context.DeadlineExceeded):
logger.WarnContext(ctx, fmt.Sprintf("Deadline exceeded: %v", err))
c.JSON(http.StatusRequestTimeout, errorResponse)
c.JSON(http.StatusRequestTimeout, dto.APIErrorResponse{Message: timeoutMst})
case errors.Is(err, context.Canceled):
logger.WarnContext(ctx, fmt.Sprintf("Deadline exceeded: %v", err))
c.JSON(http.StatusRequestTimeout, errorResponse)
c.JSON(http.StatusRequestTimeout, dto.APIErrorResponse{Message: timeoutMst})

default:
logger.ErrorContext(ctx, fmt.Sprintf("Unexpected Error: %+v", err))
Expand Down
15 changes: 9 additions & 6 deletions usecases/transfer_check_usecase.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,7 @@ func (usecase *TransferCheckUsecase) CreateTransfer(
},
)
if err != nil {
return models.Transfer{}, errors.Wrapf(
errors.Handled(err),
"Error while creating decision in transfercheck")
return models.Transfer{}, handleTransferCheckDecisionError(err)
}

return models.Transfer{
Expand Down Expand Up @@ -515,9 +513,7 @@ func (usecase *TransferCheckUsecase) ScoreTransfer(
},
)
if err != nil {
return models.Transfer{}, errors.Wrapf(
errors.Handled(err),
"Error while creating decision in transfercheck")
return models.Transfer{}, handleTransferCheckDecisionError(err)
}

transfer := models.Transfer{
Expand Down Expand Up @@ -593,3 +589,10 @@ func (usecase *TransferCheckUsecase) beneficiaryIsInNetwork(ctx context.Context,

return true, nil
}

func handleTransferCheckDecisionError(err error) error {
if errors.Is(err, context.DeadlineExceeded) || errors.Is(err, context.Canceled) {
return err
}
return errors.Wrapf(errors.Handled(err), "Error while creating decision in transfercheck")
}

0 comments on commit 162f17e

Please sign in to comment.