package httpdriver import ( "context" "net/http" "github.com/openmeterio/openmeter/pkg/framework/commonhttp" "github.com/openmeterio/openmeter/pkg/framework/transport/httptransport/encoder" ) type ErrorInvalidContentType struct { ContentType string } func (e ErrorInvalidContentType) Error() string { // return "invalid content type" return "invalid content type: " + e.ContentType } func (e ErrorInvalidContentType) Message() string { return "invalid content type: " + e.ContentType } func (e ErrorInvalidContentType) Details() map[string]any { return map[string]any{ "contentType": e.ContentType, } } type ErrorInvalidEvent struct { Err error } func (e ErrorInvalidEvent) Error() string { // return "invalid event" return "invalid event: " + e.Err.Error() } func (e ErrorInvalidEvent) Message() string { return "invalid event: " + e.Err.Error() } func errorEncoder() encoder.ErrorEncoder { return func(ctx context.Context, err error, w http.ResponseWriter, r *http.Request) bool { return commonhttp.HandleErrorIfTypeMatches[ErrorInvalidContentType](ctx, http.StatusBadRequest, err, w) || commonhttp.HandleErrorIfTypeMatches[ErrorInvalidEvent](ctx, http.StatusBadRequest, err, w) } }