X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Frest%2FApiUtils.java;h=f2405614eabbd6792062319d5670b1073605cc39;hb=ecd35f117eb0118f9cbd96fe132a1c359214bfc7;hp=bbbc02b18b9e5f0de1f5d31502ccddef45d53ee0;hpb=15af66b115f3e8046b2d0f2634fb77b3d835f730;p=aai%2Fsearch-data-service.git diff --git a/src/main/java/org/onap/aai/sa/rest/ApiUtils.java b/src/main/java/org/onap/aai/sa/rest/ApiUtils.java index bbbc02b..f240561 100644 --- a/src/main/java/org/onap/aai/sa/rest/ApiUtils.java +++ b/src/main/java/org/onap/aai/sa/rest/ApiUtils.java @@ -1,4 +1,4 @@ -/** +/** * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ @@ -20,27 +20,34 @@ */ package org.onap.aai.sa.rest; +import com.google.common.base.Strings; import java.util.UUID; import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response.Status.Family; import org.onap.aai.cl.mdc.MdcContext; import org.onap.aai.sa.searchdbabstraction.util.SearchDbConstants; import org.slf4j.MDC; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -// Spring Imports - +/** + * Spring Imports. + * + */ public class ApiUtils { - public static final String SEARCH_AUTH_POLICY_NAME = "search"; public static final String URL_PREFIX = "services/search-data-service/v1/search"; + public static final String SEARCH_AUTH_POLICY_NAME = "search"; + + private static final String URI_SEGMENT_INDEXES = "indexes"; + private static final String URI_SEGMENT_DOCUMENTS = "documents"; public enum Action { POST, GET, PUT, DELETE - }; + } /** * This method uses the contents of the supplied HTTP headers and request structures to populate the MDC Context @@ -50,18 +57,15 @@ public class ApiUtils { * @param headers - HTTP headers */ protected static void initMdcContext(HttpServletRequest httpReq, HttpHeaders headers) { - // Auto generate a transaction if we were not provided one. String transId = null; if (headers != null) { transId = headers.getFirst("X-TransactionId"); - - if ((transId == null) || (transId.equals(""))) { + if (Strings.isNullOrEmpty(transId)) { transId = UUID.randomUUID().toString(); } } - String fromIp = (httpReq != null) ? httpReq.getRemoteHost() : ""; String fromApp = (headers != null) ? headers.getFirst("X-FromAppId") : ""; @@ -73,57 +77,41 @@ public class ApiUtils { } public static String buildIndexUri(String index) { - return (URL_PREFIX + "/indexes/") + index; } public static String buildDocumentUri(String index, String documentId) { - return buildIndexUri(index) + "/documents/" + documentId; } public static boolean validateIndexUri(String uri) { - - // If the URI starts with a leading '/' character, remove it. uri = uri.startsWith("/") ? uri.substring(1) : uri; - - // Now, tokenize the URI string. String[] tokens = uri.split("/"); - - return (tokens.length == 6) && (tokens[4].equals("indexes")); - + return (tokens.length == 6) && (tokens[4].equals(URI_SEGMENT_INDEXES)); } public static boolean validateDocumentUri(String uri, boolean requireId) { - - // If the URI starts with a leading '/' character, remove it. uri = uri.startsWith("/") ? uri.substring(1) : uri; - - // Now, tokenize the URI string. String[] tokens = uri.split("/"); if (requireId) { - return (tokens.length == 8) && (tokens[4].equals("indexes") && (tokens[6].equals("documents"))); + return (tokens.length == 8) + && (tokens[4].equals(URI_SEGMENT_INDEXES) && (tokens[6].equals(URI_SEGMENT_DOCUMENTS))); } else { return ((tokens.length == 8) || (tokens.length == 7)) - && (tokens[4].equals("indexes") && (tokens[6].equals("documents"))); + && (tokens[4].equals(URI_SEGMENT_INDEXES) && (tokens[6].equals(URI_SEGMENT_DOCUMENTS))); } } public static String extractIndexFromUri(String uri) { - - // If the URI starts with a leading '/' character, remove it. uri = uri.startsWith("/") ? uri.substring(1) : uri; - // Now, tokenize the URI string. String[] tokens = uri.split("/"); int i = 0; for (String token : tokens) { - if (token.equals("indexes")) { - if (i + 1 < tokens.length) { - return tokens[i + 1]; - } + if (token.equals(URI_SEGMENT_INDEXES) && i + 1 < tokens.length) { + return tokens[i + 1]; } i++; } @@ -132,19 +120,14 @@ public class ApiUtils { } public static String extractIdFromUri(String uri) { - - // If the URI starts with a leading '/' character, remove it. uri = uri.startsWith("/") ? uri.substring(1) : uri; - // Now, tokenize the URI string. String[] tokens = uri.split("/"); int i = 0; for (String token : tokens) { - if (token.equals("documents")) { - if (i + 1 < tokens.length) { - return tokens[i + 1]; - } + if (token.equals(URI_SEGMENT_DOCUMENTS) && i + 1 < tokens.length) { + return tokens[i + 1]; } i++; } @@ -153,29 +136,18 @@ public class ApiUtils { } public static String getHttpStatusString(int httpStatusCode) { - // Some of the status codes we use are still in draft state in the standards, and are not - // recognized in the javax library. We need to manually translate these to human-readable - // strings. - String statusString = "Unknown"; - HttpStatus status = null; - try { - status = HttpStatus.valueOf(httpStatusCode); + return HttpStatus.valueOf(httpStatusCode).getReasonPhrase(); } catch (IllegalArgumentException e) { - } - - - if (status == null) { - switch (httpStatusCode) { - case 207: - statusString = "Multi Status"; - break; - default: + if (207 == httpStatusCode) { + return "Multi-Status"; + } else { + return "Unknown"; } - } else { - statusString = status.getReasonPhrase(); } + } - return statusString; + public static boolean isSuccessStatusCode(int statusCode) { + return Family.familyOf(statusCode).equals(Family.SUCCESSFUL); } }