- private AbstractGraphDataService graphDataService;
- Logger logger = LoggerFactory.getInstance().getLogger(CrudRestService.class.getName());
- Logger auditLogger = LoggerFactory.getInstance().getAuditLogger(CrudRestService.class.getName());
- private Auth auth;
-
- private String mediaType = MediaType.APPLICATION_JSON;
- public static final String HTTP_PATCH_METHOD_OVERRIDE = "X-HTTP-Method-Override";
-
- public CrudRestService(AbstractGraphDataService graphDataService) throws Exception {
- this.graphDataService = graphDataService;
- this.auth = new Auth(CrudServiceConstants.CRD_AUTH_FILE);
- }
-
- // For unit testing
- public CrudRestService(AbstractGraphDataService graphDataService, Auth auth) throws Exception {
- this.graphDataService = graphDataService;
- this.auth = auth;
- }
-
- public enum Action {
- POST, GET, PUT, DELETE, PATCH
- }
-
- public void startup() {
-
- }
-
- @GET
- @Path("/{version}/{type}/{id}")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response getVertex(String content, @PathParam("version") String version, @PathParam("type") String type,
- @PathParam("id") String id, @PathParam("uri") @Encoded String uri, @Context HttpHeaders headers,
- @Context UriInfo uriInfo, @Context HttpServletRequest req) {
- LoggingUtil.initMdcContext(req, headers);
-
- logger.debug("Incoming request..." + content);
- Response response = null;
-
- Map<String, String> params = addParams ( uriInfo, false, type, version );
-
- try {
- if (validateRequest(req, uri, content, Action.GET, CrudServiceConstants.CRD_AUTH_POLICY_NAME, headers)) {
- ImmutablePair<EntityTag, String> result = graphDataService.getVertex(version, id, type, params);
- response = Response.status(Status.OK).entity(result.getValue()).tag(result.getKey()).type(mediaType).build();
- } else {
- response = Response.status(Status.FORBIDDEN).entity(content).type(MediaType.APPLICATION_JSON).build();
- }
- } catch (CrudException ce) {
- response = Response.status(ce.getHttpStatus()).entity(ce.getMessage()).build();
- } catch (Exception e) {
- response = Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
-
- }
-
- LoggingUtil.logRestRequest(logger, auditLogger, req, response);
- return response;
- }
-
- @GET
- @Path("/{version}/{type}/")
- @Consumes({MediaType.APPLICATION_JSON})
- @Produces({MediaType.APPLICATION_JSON})
- public Response getVertices(String content, @PathParam("version") String version, @PathParam("type") String type,
- @PathParam("uri") @Encoded String uri, @Context HttpHeaders headers, @Context UriInfo uriInfo,
- @Context HttpServletRequest req) {
-
- LoggingUtil.initMdcContext(req, headers);
-
- logger.debug("Incoming request..." + content);
- Response response = null;
- try {
- if (validateRequest(req, uri, content, Action.GET, CrudServiceConstants.CRD_AUTH_POLICY_NAME, headers)) {
- String propertiesKey = CrudProperties.get(CrudServiceConstants.CRD_COLLECTION_PROPERTIES_KEY);
- Map<String, String> filter = addParams ( uriInfo, true, type, version );
-
- HashSet<String> properties;
- if (uriInfo.getQueryParameters().containsKey(propertiesKey)) {
- properties = new HashSet<>(uriInfo.getQueryParameters().get(propertiesKey));
- } else {
- properties = new HashSet<>();
- }