67 lines
3.0 KiB
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();
|
|
}
|
|
} |