X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Frest%2FSearchServiceApi.java;h=98b164b3557513b10a3cacc17c9272f4330b18ac;hb=b017fc5719f90d37b3c4d45698f018f83fa8e910;hp=249f6b14af8952acb7599629f990df0e410dbb3c;hpb=1d1fbefced829fed4f3d6bb4123f9df8c9cb8d3c;p=aai%2Fsearch-data-service.git 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 249f6b1..98b164b 100644 --- a/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java +++ b/src/main/java/org/onap/aai/sa/rest/SearchServiceApi.java @@ -24,24 +24,21 @@ 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; +@Component +@EnableWebSecurity +@RestController +@RequestMapping("/services/search-data-service/v1/search") public class SearchServiceApi { /** @@ -51,7 +48,6 @@ public class SearchServiceApi { protected DocumentStoreInterface documentStore = null; protected ApiUtils apiUtils = null; - /** * Create a new instance of the end point. */ @@ -73,39 +69,26 @@ 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 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 processDeleteIndex(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); @@ -113,124 +96,142 @@ public class SearchServiceApi { } - @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. - DocumentApi documentApi = new DocumentApi(this); - return documentApi.processGet(requestBody, request, headers, httpResponse, - index, id, 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", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity processCreateDocWithoutId(@RequestBody 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.processPost(requestBody, request, headers, httpResponse, - index, documentStore); + index, 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.PUT, + consumes = {"application/json"}) + public ResponseEntity processUpsertDoc(@RequestBody 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. DocumentApi documentApi = new DocumentApi(this); return documentApi.processPut(requestBody, request, headers, httpResponse, - index, id, documentStore); + 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.GET) + public ResponseEntity processGetDocument(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. + // Forward the request to our document API to retrieve the document. DocumentApi documentApi = new DocumentApi(this); - return documentApi.processDelete(requestBody, request, headers, httpResponse, - index, id, documentStore); + return documentApi.processGet("", 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}/documents/{id}", + method = RequestMethod.DELETE, + consumes = {"application/json"}) + public ResponseEntity processDeleteDoc(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.processSearchWithGet(requestBody, request, headers, - index, queryText, documentStore); + return documentApi.processDelete("", request, headers, httpResponse, + index, id, documentStore); } + @RequestMapping(value = "/indexes/{index}/query/{queryText}", + method = RequestMethod.GET) + public ResponseEntity processInlineQuery(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("", 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 processQueryWithGet(@RequestBody 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 processQuery(@RequestBody 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); } + @RequestMapping(value = "/indexes/{index}/suggest", + method = RequestMethod.POST, + consumes = {"application/json"}) + public ResponseEntity processSuggestQuery(@RequestBody 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); + } + + @RequestMapping(value = "/indexes/dynamic/{index}", + method = RequestMethod.PUT, + consumes = {"application/json"}) + public ResponseEntity processCreateDynamicIndex(@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.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"}, + produces = { "application/json"}) + public ResponseEntity processBulkRequest(@RequestBody 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 dbugResp = bulkApi.processPost(requestBody, request, headers, documentStore, apiUtils); + return dbugResp; } protected boolean validateRequest(HttpHeaders headers, @@ -257,7 +258,7 @@ public class SearchServiceApi { } String status = serviceAuth.authUser(headers, authUser.toLowerCase(), - action.toString() + ":" + authPolicyFunctionName); + action.toString() + ":" + authPolicyFunctionName); if (!status.equals("OK")) { return false; }