diff options
Diffstat (limited to 'src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java')
-rw-r--r-- | src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java | 235 |
1 files changed, 132 insertions, 103 deletions
diff --git a/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java b/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java index 99b4615..9552658 100644 --- a/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java +++ b/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java @@ -24,27 +24,28 @@ import org.onap.aai.sa.auth.SearchDbServiceAuth; import org.onap.aai.sa.rest.ApiUtils.Action; import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreInterface; import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.ElasticSearchHttpController; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.*; -import java.security.cert.X509Certificate; import javax.security.auth.x500.X500Principal; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import java.security.cert.X509Certificate; + +// import javax.servlet.http.HttpServletRequest; +@Component +@EnableWebSecurity +@RestController +@RequestMapping("/services/search-db-service/v1") public class SearchServiceApi { /** - * The Data Access Object that we will use to interact with the document store. + * The Data Access Object that we will use to interact with the + * document store. */ protected DocumentStoreInterface documentStore = null; protected ApiUtils apiUtils = null; @@ -58,6 +59,7 @@ public class SearchServiceApi { init(); } + /** * Performs all one-time initialization required for the end point. */ @@ -69,152 +71,179 @@ public class SearchServiceApi { apiUtils = new ApiUtils(); } - @PUT - @Path("/indexes/{index}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processCreateIndex(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { + @RequestMapping(value = "/indexes/{index}", + method = RequestMethod.PUT, + produces = { "application/json" }) + public ResponseEntity<String> processCreateIndex(@RequestBody String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable("index") String index) { // Forward the request to our index API to create the index. IndexApi indexApi = new IndexApi(this); return indexApi.processCreateIndex(requestBody, request, headers, index, documentStore); } - @PUT - @Path("/indexes/dynamic/{index}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processCreateDynamicIndex(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { - - // Forward the request to our index API to create the index. - IndexApi indexApi = new IndexApi(this); - return indexApi.processCreateDynamicIndex(requestBody, request, headers, index, documentStore); - } - - @DELETE - @Path("/indexes/{index}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processDeleteIndex(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { + @RequestMapping(value = "/indexes/{index}", + method = RequestMethod.DELETE, + consumes = {"application/json"}, + produces = {"application/json"}) + public ResponseEntity<String> processDeleteIndex(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index) { // Forward the request to our index API to delete the index. IndexApi indexApi = new IndexApi(this); return indexApi.processDelete(index, request, headers, documentStore); } - @GET - @Path("/indexes/{index}/documents/{id}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processGetDocument(String requestBody, @Context HttpServletRequest request, - @Context HttpServletResponse httpResponse, @Context HttpHeaders headers, - @PathParam("index") String index, @PathParam("id") String id) { - // Forward the request to our document API to retrieve the document. + @RequestMapping(value = "/indexes/{index}/documents", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity<String> processCreateDocWithoutId(String requestBody, + HttpServletRequest request, + HttpServletResponse httpResponse, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index) { + + // Forward the request to our document API to create the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processGet(requestBody, request, headers, httpResponse, index, id, - documentStore); + return documentApi.processPost(requestBody, request, headers, httpResponse, + index, documentStore); } - @POST - @Path("/indexes/{index}/documents") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processCreateDocWithoutId(String requestBody, @Context HttpServletRequest request, - @Context HttpServletResponse httpResponse, @Context HttpHeaders headers, - @PathParam("index") String index) { + @RequestMapping(value = "/indexes/{index}/documents/{id}", + method = RequestMethod.PUT, + consumes = {"application/json"}) + public ResponseEntity<String> processUpsertDoc(String requestBody, + HttpServletRequest request, + HttpServletResponse httpResponse, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index, + @PathVariable ("id") String id) { - // Forward the request to our document API to create the document. + // Forward the request to our document API to upsert the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processPost(requestBody, request, headers, httpResponse, index, - documentStore); + return documentApi.processPut(requestBody, request, headers, httpResponse, + index, id, documentStore); } - @PUT - @Path("/indexes/{index}/documents/{id}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processUpsertDoc(String requestBody, @Context HttpServletRequest request, - @Context HttpServletResponse httpResponse, @Context HttpHeaders headers, - @PathParam("index") String index, @PathParam("id") String id) { + @RequestMapping(value = "/indexes/{index}/documents/{id}", + method = RequestMethod.GET) + public ResponseEntity<String> processGetDocument(String requestBody, + HttpServletRequest request, + HttpServletResponse httpResponse, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index, + @PathVariable ("id") String id) { - // Forward the request to our document API to upsert the document. + // Forward the request to our document API to retrieve the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processPut(requestBody, request, headers, httpResponse, index, id, - documentStore); + return documentApi.processGet(requestBody, request, headers, httpResponse, + index, id, documentStore); } - @DELETE - @Path("/indexes/{index}/documents/{id}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processDeleteDoc(String requestBody, @Context HttpServletRequest request, - @Context HttpServletResponse httpResponse, @Context HttpHeaders headers, - @PathParam("index") String index, @PathParam("id") String id) { + @RequestMapping(value = "/indexes/{index}/documents/{id}", + method = RequestMethod.DELETE, + consumes = {"application/json"}) + public ResponseEntity<String> processDeleteDoc(String requestBody, + HttpServletRequest request, + HttpServletResponse httpResponse, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index, + @PathVariable ("id") String id) { // Forward the request to our document API to delete the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processDelete(requestBody, request, headers, httpResponse, index, id, - documentStore); + return documentApi.processDelete(requestBody, request, headers, httpResponse, + index, id, documentStore); } - @GET - @Path("/indexes/{index}/query/{queryText}") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processInlineQuery(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index, - @PathParam("queryText") String queryText) { + @RequestMapping(value = "/indexes/{index}/query/{queryText}", + method = RequestMethod.GET, + consumes = {"application/json"}) + public ResponseEntity<String> processInlineQuery(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index, + @PathVariable ("queryText") String queryText) { // Forward the request to our document API to delete the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processSearchWithGet(requestBody, request, headers, index, queryText, - documentStore); + return documentApi.processSearchWithGet(requestBody, request, headers, + index, queryText, documentStore); } - @GET - @Path("/indexes/{index}/query") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processQueryWithGet(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { + @RequestMapping(value = "/indexes/{index}/query", + method = RequestMethod.GET, + consumes = {"application/json"}) + public ResponseEntity<String> processQueryWithGet(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index) { // Forward the request to our document API to delete the document. DocumentApi documentApi = new DocumentApi(this); return documentApi.queryWithGetWithPayload(requestBody, request, headers, index, documentStore); } - @POST - @Path("/indexes/{index}/query") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processQuery(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { + @RequestMapping(value = "/indexes/{index}/query", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity<String> processQuery(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index) { // Forward the request to our document API to delete the document. DocumentApi documentApi = new DocumentApi(this); return documentApi.processSearchWithPost(requestBody, request, headers, index, documentStore); } - @POST - @Path("/indexes/{index}/suggest") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processSuggestQuery(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { - + @RequestMapping(value = "/indexes/{index}/suggest", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity<String> processSuggestQuery(String requestBody, HttpServletRequest request, + @RequestHeader HttpHeaders headers, @PathVariable("index") String index) { // Forward the request to our document API to query suggestions in the // document. DocumentApi documentApi = new DocumentApi(this); return documentApi.processSuggestQueryWithPost(requestBody, request, headers, index, - documentStore); + documentStore); + } + + @RequestMapping(value = "/indexes/dynamic/{index}", + method = RequestMethod.PUT, + consumes = {"application/json"}) + public ResponseEntity<String> processCreateDynamicIndex(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers, + @PathVariable ("index") String index) { + + // Forward the request to our index API to create the index. + IndexApi indexApi = new IndexApi(this); + return indexApi.processCreateDynamicIndex(requestBody, request, headers, index, documentStore); } - @POST - @Path("/bulk") - @Consumes({MediaType.APPLICATION_JSON}) - public Response processBulkRequest(String requestBody, @Context HttpServletRequest request, - @Context HttpHeaders headers, @PathParam("index") String index) { + @RequestMapping(value = "/bulk", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity<String> processBulkRequest(String requestBody, + HttpServletRequest request, + @RequestHeader HttpHeaders headers) { // Forward the request to our document API to delete the document. BulkApi bulkApi = new BulkApi(this); - return bulkApi.processPost(requestBody, request, headers, documentStore, apiUtils); + ResponseEntity<String> dbugResp = bulkApi.processPost(requestBody, request, headers, documentStore, apiUtils); + return dbugResp; } - protected boolean validateRequest(HttpHeaders headers, HttpServletRequest req, Action action, - String authPolicyFunctionName) throws Exception { + protected boolean validateRequest(HttpHeaders headers, + HttpServletRequest req, + Action action, + String authPolicyFunctionName) throws Exception { SearchDbServiceAuth serviceAuth = new SearchDbServiceAuth(); @@ -235,7 +264,7 @@ public class SearchServiceApi { } String status = serviceAuth.authUser(headers, authUser.toLowerCase(), - action.toString() + ":" + authPolicyFunctionName); + action.toString() + ":" + authPolicyFunctionName); if (!status.equals("OK")) { return false; } |