Leonardo Vannucci
2018-09-17 8b5a0e6b856f4b18785a98996dc383143b3f2f1f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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;
   }
}