diff options
Diffstat (limited to 'src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java')
-rw-r--r-- | src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java index 3f46324..d2fd561 100644 --- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java +++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/exception/DiscoveryException.java @@ -26,7 +26,8 @@ public class DiscoveryException extends Exception { private final Status httpStatus; public DiscoveryException(String message) { - this(message, Status.INTERNAL_SERVER_ERROR); + super(message); + this.httpStatus = matchErrorCode(message); } public DiscoveryException(String message, Status httpStatus) { @@ -39,11 +40,27 @@ public class DiscoveryException extends Exception { public DiscoveryException(String message, Exception cause) { super(message, cause); - this.httpStatus = Status.INTERNAL_SERVER_ERROR; + this.httpStatus = matchErrorCode(cause.getMessage()); } public Status getHttpStatus() { return this.httpStatus; } + private Status matchErrorCode(String errorMessage) { + if (errorMessage.toLowerCase().contains("auth")) { + return Status.UNAUTHORIZED; + } + if ((errorMessage.toLowerCase().contains("missing"))) { + return Status.BAD_REQUEST; + } else { + for (Status st : Status.values()) { + + if (errorMessage.toLowerCase().contains(st.getReasonPhrase().toLowerCase())) { + return st; + } + } + } + return Status.INTERNAL_SERVER_ERROR; + } } |