X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2Fcontrollers%2FErrorResponse.java;h=d423e19fe3af3e504d6ed5563ff3caaff95d7bea;hb=718fc1767c5534e0606c7ffeb3bb23db6b8d9b0e;hp=20e9f76265e9b56b4578dbeb39421f29cab105b6;hpb=8b532f02d2d985a3d68416296a7dd7e62f9b24bf;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java index 20e9f762..d423e19f 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java @@ -1,9 +1,9 @@ /*- * ========================LICENSE_START================================= - * ONAP : ccsdk oran - * ====================================================================== - * Copyright (C) 2020 Nordix Foundation. All rights reserved. - * ====================================================================== + * O-RAN-SC + * %% + * Copyright (C) 2020 Nordix Foundation + * %% * 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 @@ -24,9 +24,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.annotations.SerializedName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import org.oransc.enrichment.exceptions.ServiceException; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -34,11 +34,12 @@ import org.springframework.http.ResponseEntity; import reactor.core.publisher.Mono; public class ErrorResponse { - private static Gson gson = new GsonBuilder() // - .create(); // + private static Gson gson = new GsonBuilder().create(); // Returned as body for all failed REST calls - @ApiModel(value = "error_information", description = "Problem as defined in https://tools.ietf.org/html/rfc7807") + @Schema( + name = "ProblemDetails", + description = "A problem detail to carry details in a HTTP response according to RFC 7807") public static class ErrorInfo { @SerializedName("type") private String type = "about:blank"; @@ -60,35 +61,40 @@ public class ErrorResponse { this.status = status; } - @ApiModelProperty( + @Schema( example = "404", - value = "The HTTP status code generated by the origin server for this occurrence of the problem.") + description = "The HTTP status code generated by the origin server for this occurrence of the problem.") public Integer getStatus() { return status; } - @ApiModelProperty( + @Schema( example = "EI job type not found", - value = "A human-readable explanation specific to this occurrence of the problem.") + description = "A human-readable explanation specific to this occurrence of the problem.") public String getDetail() { return this.detail; } } - @ApiModelProperty(value = "message") + @Schema(name = "message") public final String message; ErrorResponse(String message) { this.message = message; } - public static Mono> createMono(Exception e, HttpStatus code) { + public static Mono> createMono(Throwable e, HttpStatus code) { return Mono.just(create(e, code)); } - public static ResponseEntity create(Exception e, HttpStatus code) { + public static ResponseEntity create(Throwable e, HttpStatus code) { if (e instanceof RuntimeException) { code = HttpStatus.INTERNAL_SERVER_ERROR; + } else if (e instanceof ServiceException) { + ServiceException se = (ServiceException) e; + if (se.getHttpStatus() != null) { + code = se.getHttpStatus(); + } } return create(e.toString(), code); }