package org.oliot.epcis.service.capture.secured; import javax.servlet.ServletContext; import org.json.JSONObject; import org.oliot.epcis.configuration.Configuration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.ServletContextAware; /** * Copyright (C) 2014-2016 Jaewook Byun * * This project is part of Oliot open source (http://oliot.org). Oliot EPCIS * v1.2.x is Java Web Service complying with Electronic Product Code Information * Service (EPCIS) v1.2. * * @author Jaewook Byun, Ph.D student * * Korea Advanced Institute of Science and Technology (KAIST) * * Real-time Embedded System Laboratory(RESL) * * bjw0829@kaist.ac.kr, bjw0829@gmail.com */ @Controller @RequestMapping("/DeleteEPCIS") public class DeleteEPCIS implements ServletContextAware { @Autowired ServletContext servletContext; @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } public ResponseEntity<?> asyncDelete(String inputString) { ResponseEntity<?> result = del(inputString, null, null, null); return result; } /** * del * * @creator Jaehee Ha lovesm135@kaist.ac.kr created 2017/02/07 * @param inputString * @param gcpLength * @return ResponseEntity<?> */ @RequestMapping(method = RequestMethod.DELETE) @ResponseBody public ResponseEntity<?> del(@RequestBody String inputString, @RequestParam(required = false) Integer gcpLength, @RequestParam(required = false) String userID, @RequestParam(required = false) String accessToken) { JSONObject retMsg = new JSONObject(); // ============================================================================================= /* jaeheeHa3 AC_delete repository */ // This method must be conducted by Access Control Web GUI. // This method must not be conducted by URL based Get request. // url of ac_api server String quri = "http://" + Configuration.ac_api_address + "/user/" + userID + "/epcis/" + "bar1_epcis" + "/possess"; // query to ac_api server String qurlParameters = ""; String query_result = Configuration.query_access_relation(quri, accessToken, qurlParameters); // for debug, erase after implementing. Configuration.logger.info(query_result); query_result = query_result.replaceAll("[\"{} ]", "").split(":")[1]; boolean pass = (query_result.equals("yes")) ? true : false; if (!pass) { return new ResponseEntity<>("No!", HttpStatus.BAD_REQUEST); } Configuration.dropMongoDB(); Configuration.logger.info(" EPCIS Repository : Deleted "); if (retMsg.isNull("error") == true) return new ResponseEntity<>(retMsg.toString(), HttpStatus.OK); else return new ResponseEntity<>(retMsg.toString(), HttpStatus.BAD_REQUEST); } }