orbeon-bluedb-integration/integration-module/src/main/java/hycom/MapperController.java

67 lines
3.0 KiB
Java

package hycom;
import hycom.dao.MapperPublishDao;
import hycom.dao.MapperSubmitDao;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.xml.sax.SAXException;
/**
* Kontroler zapewniający API do obsługi przesyłanych formularzy
*/
@RestController
public class MapperController {
private final MapperPublishDao mapperPublishDao;
private final MapperSubmitDao mapperSubmitDao;
public MapperController(MapperPublishDao mapperPublishDao, MapperSubmitDao mapperSubmitDao) {
this.mapperPublishDao = mapperPublishDao;
this.mapperSubmitDao = mapperSubmitDao;
}
/**
* Przyjmuje pusty formularz.
* @param appName nazwa Aplikacji formularza
* @param formName nazwa Formy formularza
* @param formXML pusty formularz
* @return Kod odpowiedzi.
* @throws ParserConfigurationException Wyjątek wyrzucany, w przypadku próby parsowania nie odpowiedniego pliku.
* @throws IOException Wyjątek wyrzucany, w przypadku odczytywania z zamkniętego strumienia danych.
* @throws SAXException Wyjątek wyrzucany, w przypadku nieudanego budowania pliku dokumentu.
*/
@RequestMapping(value = "/rest/mapper/publish/{application-name}/{form-name}", method = RequestMethod.PUT)
public @ResponseBody ResponseEntity<Object> get(@PathVariable("application-name") String appName, @PathVariable("form-name") String formName,
@RequestBody String formXML ) throws IOException, SAXException, ParserConfigurationException {
mapperPublishDao.parseStringToXML(formXML, appName, formName);
return ResponseEntity.noContent().build();
}
/**
* Przyjmuje uzupełniony formularz.
* @param appName nazwa Aplikacji formularza
* @param formName nazwa Formy formularza
* @param formXML pusty formularz
* @param username nazwa Użytkownika wysyłającego formularz
* @return Kod odpowiedzi.
* @throws ParserConfigurationException Wyjątek wyrzucany, w przypadku próby parsowania nie odpowiedniego pliku.
* @throws IOException Wyjątek wyrzucany, w przypadku odczytywania z zamkniętego strumienia danych.
* @throws SAXException Wyjątek wyrzucany, w przypadku nieudanego budowania pliku dokumentu.
*/
@RequestMapping(value = "/rest/mapper/submit/{app}/{form}/{username}", method = RequestMethod.POST)
public ResponseEntity getMapper(@PathVariable("app") String appName, @PathVariable("form") String formName,
@PathVariable("username") String username, @RequestBody String formXML) throws IOException, SAXException, ParserConfigurationException {
mapperSubmitDao.parseXML(formXML, appName, formName, username);
return ResponseEntity.noContent().build();
}
}