@@ -2,11 +2,13 @@ package common
22
33import (
44 "errors"
5+ "net/http"
6+
57 "github.com/formancehq/go-libs/v3/api"
68 "github.com/formancehq/go-libs/v3/logging"
79 "github.com/formancehq/go-libs/v3/otlp"
810 "github.com/formancehq/go-libs/v3/platform/postgres"
9- "net/http "
11+ ledgercontroller "github.com/formancehq/ledger/internal/controller/ledger "
1012)
1113
1214const (
@@ -37,6 +39,19 @@ func HandleCommonErrors(w http.ResponseWriter, r *http.Request, err error) {
3739 }
3840}
3941
42+ func HandleCommonWriteErrors (w http.ResponseWriter , r * http.Request , err error ) {
43+ switch {
44+ case errors .Is (err , ledgercontroller.ErrIdempotencyKeyConflict {}):
45+ api .WriteErrorResponse (w , http .StatusConflict , ErrConflict , err )
46+ case errors .Is (err , ledgercontroller.ErrInvalidIdempotencyInput {}):
47+ api .BadRequest (w , ErrValidation , err )
48+ case errors .Is (err , ledgercontroller .ErrNotFound ):
49+ api .NotFound (w , err )
50+ default :
51+ HandleCommonErrors (w , r , err )
52+ }
53+ }
54+
4055func InternalServerError (w http.ResponseWriter , r * http.Request , err error ) {
4156 otlp .RecordError (r .Context (), err )
4257 logging .FromContext (r .Context ()).Error (err )
0 commit comments