All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.davidmoten.oa3.codegen.spring.runtime.ErrorHandler Maven / Gradle / Ivy

The newest version!
package org.davidmoten.oa3.codegen.spring.runtime;

import org.davidmoten.oa3.codegen.spring.runtime.internal.Util;
import org.springframework.http.ResponseEntity;

public interface ErrorHandler {

    default ResponseEntity errorResponse(Throwable e) {
        if (e instanceof ServiceException) {
            ServiceException ex = (ServiceException) e;
            if (ex.response().isPresent()) {
                return ex.response().get();
            }
        }
        int statusCode = Util.statusCode(e);
        return ResponseEntity.status(statusCode).body(errorResponseBody(statusCode, e));
    }

    default  T response(ResponseEntity response) throws ServiceException {
        throw new ServiceException(response);
    }

    default Object errorResponseBody(int statusCode, Throwable e) {
        return new DefaultError(statusCode, e);
    }

    default ServiceException notImplemented() {
        return new ServiceException(501, "Not implemented");
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy