package it.digione.dg1cloud.controller;
|
|
import javax.validation.Valid;
|
import javax.xml.bind.JAXBElement;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.validation.BindingResult;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import it.digione.dg1cloud.form.StartURPForm;
|
import it.digione.dg1cloud.ws.client.SOAPConnector;
|
import it.digione.dg1cloud.ws.client.isd.IsdProperties;
|
import it.digione.dg1cloud.ws.client.isd.IsdConfig;
|
import it.isharedoc.schemas.instance.InstanceMessageCreateRequest;
|
import it.isharedoc.schemas.instance.ObjectFactory;
|
|
@ControllerAdvice
|
@Controller
|
public class StartURPController {
|
|
@Autowired IsdProperties isdProperties;
|
@Autowired IsdConfig isdConfig;
|
|
@ModelAttribute("startURPForm")
|
public StartURPForm startURPForm() {
|
return new StartURPForm();
|
}
|
|
@RequestMapping("/startURP")
|
public String startURP() {
|
return "startURP";
|
}
|
@PostMapping("/sendStartRequest")
|
public Object sendStartRequest(@ModelAttribute("startURPForm") @Valid StartURPForm form,
|
BindingResult result) {
|
|
ModelAndView modelAndView;
|
if (result.hasErrors()){
|
modelAndView = new ModelAndView("startURP");
|
modelAndView.addObject(result);
|
modelAndView.addObject("startURPForm", form);
|
modelAndView.addObject("message", "Impossibbile inviare la richiesta");
|
modelAndView.addObject("alertClass", "alert-danger");
|
return modelAndView;
|
} else {
|
modelAndView = new ModelAndView("startURP");
|
|
InstanceMessageCreateRequest imcr = createInstanceMessageCreateRequest(form);
|
SOAPConnector soapConnector = isdConfig.soapConnector(isdConfig.marshaller(), isdConfig.wsSecurityInterceptor());
|
System.out.println(soapConnector.callWebService(soapConnector.getDefaultUri(), imcr));
|
|
modelAndView.addObject("message", "Richiesta inviata con successo");
|
modelAndView.addObject("alertClass", "alert-success");
|
return modelAndView;
|
}
|
|
}
|
|
private InstanceMessageCreateRequest createInstanceMessageCreateRequest( StartURPForm startURPForm ) {
|
|
ObjectFactory factory = new ObjectFactory();
|
|
InstanceMessageCreateRequest request = new InstanceMessageCreateRequest();
|
|
request.setPartitionPuid(isdProperties.getUrp().getPuid());
|
request.setMessageBoxCode(isdProperties.getUrp().getMbox());
|
request.setStoryboardCode(isdProperties.getUrp().getStoryboad());
|
|
request.setMetaViewName(factory.createInstanceMessageCreateRequestMetaViewName(isdProperties.getUrp().getMetaviewname()));
|
|
return null;
|
}
|
}
|