Files
Paul NicolasandGitHub 979b040d94 feat(psu): add payment service user entity (#424)
* chore(storage): remove errors.Wrap deprecated

* feat: add psu models

* feat(storage): add psu migrations and functions

* feat(*): add payment service users entity

* feat(tests): update sdks and add psu integration tests

* feat(validation): add validation on email and phone number
2025-04-29 10:24:09 +02:00

38 lines
1.1 KiB
Go

package v3
import (
"net/http"
"github.com/formancehq/go-libs/v3/api"
"github.com/formancehq/payments/internal/api/common"
"github.com/formancehq/payments/internal/api/services"
"github.com/formancehq/payments/internal/storage"
"github.com/pkg/errors"
)
const (
ErrValidation = "VALIDATION"
ErrInvalidID = "INVALID_ID"
ErrMissingOrInvalidBody = "MISSING_OR_INVALID_BODY"
ErrUniqueReference = "CONFLICT"
)
func handleServiceErrors(w http.ResponseWriter, r *http.Request, err error) {
switch {
case errors.Is(err, storage.ErrDuplicateKeyValue):
api.BadRequest(w, ErrUniqueReference, err)
case errors.Is(err, storage.ErrNotFound):
api.NotFound(w, err)
case errors.Is(err, storage.ErrForeignKeyViolation):
api.BadRequest(w, ErrValidation, errors.Cause(err))
case errors.Is(err, storage.ErrValidation):
api.BadRequest(w, ErrValidation, err)
case errors.Is(err, services.ErrValidation):
api.BadRequest(w, ErrValidation, err)
case errors.Is(err, services.ErrNotFound):
api.NotFound(w, err)
default:
common.InternalServerError(w, r, err)
}
}