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 package fr.paris.lutece.plugins.identitystore.v3.web.request.contract;
35
36 import fr.paris.lutece.plugins.identitystore.business.contract.AttributeCertification;
37 import fr.paris.lutece.plugins.identitystore.business.contract.ServiceContract;
38 import fr.paris.lutece.plugins.identitystore.business.contract.ServiceContractHome;
39 import fr.paris.lutece.plugins.identitystore.business.referentiel.RefAttributeCertificationProcessus;
40 import fr.paris.lutece.plugins.identitystore.service.contract.AttributeCertificationDefinitionService;
41 import fr.paris.lutece.plugins.identitystore.v3.web.rs.AbstractIdentityStoreRequest;
42 import fr.paris.lutece.plugins.identitystore.v3.web.rs.DtoConverter;
43 import fr.paris.lutece.plugins.identitystore.v3.web.rs.IdentityRequestValidator;
44 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.ServiceContractSearchResponse;
45 import fr.paris.lutece.plugins.identitystore.v3.web.rs.util.Constants;
46 import fr.paris.lutece.plugins.identitystore.v3.web.rs.util.ResponseStatusFactory;
47 import fr.paris.lutece.plugins.identitystore.web.exception.IdentityStoreException;
48 import fr.paris.lutece.portal.service.util.AppException;
49
50 import java.util.Optional;
51
52
53
54
55
56 public class ServiceContractGetRequest extends AbstractIdentityStoreRequest
57 {
58 private final Integer _nServiceContractId;
59
60
61
62
63
64
65
66
67
68 public ServiceContractGetRequest( String strClientCode, Integer nServiceContractId, final String authorName, final String authorType )
69 throws IdentityStoreException
70 {
71 super( strClientCode, authorName, authorType );
72 this._nServiceContractId = nServiceContractId;
73 }
74
75 @Override
76 protected void validateSpecificRequest( ) throws IdentityStoreException
77 {
78 IdentityRequestValidator.instance( ).checkContractId( _nServiceContractId );
79 }
80
81
82
83
84
85
86
87 @Override
88 public ServiceContractSearchResponse doSpecificRequest( )
89 {
90 final ServiceContractSearchResponse response = new ServiceContractSearchResponse( );
91
92 final Optional<ServiceContract> result = ServiceContractHome.findByPrimaryKey( _nServiceContractId );
93
94 if ( !result.isPresent( ) )
95 {
96 response.setStatus( ResponseStatusFactory.notFound( ).setMessageKey( Constants.PROPERTY_REST_ERROR_SERVICE_CONTRACT_NOT_FOUND ) );
97 }
98 else
99 {
100 final ServiceContract serviceContract = result.get( );
101 serviceContract.setAttributeRights( ServiceContractHome.selectApplicationRights( serviceContract ) );
102 serviceContract.setAttributeCertifications( ServiceContractHome.selectAttributeCertifications( serviceContract ) );
103 serviceContract.setAttributeRequirements( ServiceContractHome.selectAttributeRequirements( serviceContract ) );
104
105 for ( final AttributeCertification certification : serviceContract.getAttributeCertifications( ) )
106 {
107 for ( final RefAttributeCertificationProcessus processus : certification.getRefAttributeCertificationProcessus( ) )
108 {
109 processus.setLevel(
110 AttributeCertificationDefinitionService.instance( ).get( processus.getCode( ), certification.getAttributeKey( ).getKeyName( ) ) );
111 }
112 }
113 response.setServiceContract( DtoConverter.convertContractToDto( serviceContract ) );
114 response.setStatus( ResponseStatusFactory.ok( ).setMessageKey( Constants.PROPERTY_REST_INFO_SUCCESSFUL_OPERATION ) );
115 }
116
117 return response;
118 }
119
120 }