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