package org.bygle.controller; import javax.servlet.http.HttpServletRequest; import org.bygle.service.LDPService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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; @Controller public class LDPController { private static final Logger logger = LoggerFactory.getLogger(LDPController.class); @Autowired LDPService ldpService; @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.GET) public ResponseEntity<?> get(HttpServletRequest request) { System.out.println("bygle - info] RequestMethod.GET"); try { String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); if (request.getHeader("Accept").indexOf("text/html") != -1) { return ldpService.getResource(about, request.getHeader("Host")); } else { return ldpService.get(about, request.getHeader("Accept"), request.getHeader("Prefer"), request.getHeader("Host")); } } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.POST) public ResponseEntity<String> post(@RequestBody byte[] data, HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.POST"); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+request.getHeader("Slug")); String about = ldpService.getAbout(request); return ldpService.post(data, request.getHeader("Content-Type"), about, request.getHeader("Slug"), request.getHeader("Host"), request.getHeader("Link"), request.getHeader("MD5")); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.DELETE) public ResponseEntity<String> delete(HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.DELETE"); String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); return ldpService.delete(about, request.getHeader("Host")); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.OPTIONS) public ResponseEntity<String> options(HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.OPTIONS"); String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); return ldpService.options(about, request.getHeader("Host")); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.HEAD) public ResponseEntity<String> head(HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.HEAD"); String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); return ldpService.head(about, request.getHeader("Host")); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.PUT) public ResponseEntity<String> put(@RequestBody String data, HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.PUT"); String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); return ldpService.put(data.getBytes(), request.getHeader("Content-Type"), about, request.getHeader("If-Match"), request.getHeader("Host"), request.getHeader("Slug"), request.getHeader("Link")); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } @RequestMapping(value = { "", "{path:(?!resources|error|sparql).*$}", "{path:(?!resources|error|sparql).*$}/**" }, method = RequestMethod.PATCH) public ResponseEntity<String> patch(@RequestBody String data, HttpServletRequest request) { try { System.out.println("[bygle - info] RequestMethod.PATCH"); String about = ldpService.getAbout(request); System.out.println("[bygle - info] " + request.getHeader("Host")+" - "+about); return ldpService.patch(data.getBytes(), request.getHeader("Content-Type"), about, request.getHeader("If-Match"), request.getHeader("Host"), request.getHeader("Slug"), request.getHeader("Link")); } catch (Exception e) { return new ResponseEntity<String>(HttpStatus.INTERNAL_SERVER_ERROR); } } }