X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=inline;f=r-app-catalogue%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Frappcatalogue%2Fapi%2FGeneralRappCatalogueControllerAdvisor.java;fp=r-app-catalogue%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Frappcatalogue%2Fapi%2FGeneralRappCatalogueControllerAdvisor.java;h=939f7bf9dc10f6f0a8a1c376f04c3a6b144330f8;hb=2d7ba05327959f5381f96fd885b3b82789d8936c;hp=0000000000000000000000000000000000000000;hpb=9e3bf9348a6f2a739411316591093f3b9a0fc937;p=nonrtric.git diff --git a/r-app-catalogue/src/main/java/org/oransc/rappcatalogue/api/GeneralRappCatalogueControllerAdvisor.java b/r-app-catalogue/src/main/java/org/oransc/rappcatalogue/api/GeneralRappCatalogueControllerAdvisor.java new file mode 100644 index 00000000..939f7bf9 --- /dev/null +++ b/r-app-catalogue/src/main/java/org/oransc/rappcatalogue/api/GeneralRappCatalogueControllerAdvisor.java @@ -0,0 +1,64 @@ +/*- + * ========================LICENSE_START================================= + * Copyright (C) 2020 Nordix Foundation. All rights reserved. + * ====================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +package org.oransc.rappcatalogue.api; + +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; +import static org.springframework.http.HttpStatus.NOT_FOUND; + +import org.oransc.rappcatalogue.exception.HeaderException; +import org.oransc.rappcatalogue.exception.InvalidServiceException; +import org.oransc.rappcatalogue.exception.ServiceNotFoundException; +import org.oransc.rappcatalogue.model.ErrorInformation; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@ControllerAdvice +public class GeneralRappCatalogueControllerAdvisor extends ResponseEntityExceptionHandler { + @ExceptionHandler(InvalidServiceException.class) + public ResponseEntity handleInvalidServiceException( + InvalidServiceException ex) { + + return new ResponseEntity<>(getErrorInformation(ex, BAD_REQUEST), BAD_REQUEST); + } + + @ExceptionHandler(ServiceNotFoundException.class) + public ResponseEntity handleServiceNotFoundException( + ServiceNotFoundException ex) { + + return new ResponseEntity<>(getErrorInformation(ex, NOT_FOUND), NOT_FOUND); + } + + @ExceptionHandler(HeaderException.class) + public ResponseEntity handleHeaderException( + HeaderException ex) { + + return new ResponseEntity<>(getErrorInformation(ex, INTERNAL_SERVER_ERROR), INTERNAL_SERVER_ERROR); + } + + private ErrorInformation getErrorInformation(Exception cause, HttpStatus status) { + ErrorInformation errorInfo = new ErrorInformation(); + errorInfo.setDetail(cause.getMessage()); + errorInfo.setStatus(status.value()); + return errorInfo; + } +}