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.referentiel.RefAttributeCertificationProcessus;
39 import fr.paris.lutece.plugins.identitystore.service.contract.AttributeCertificationDefinitionService;
40 import fr.paris.lutece.plugins.identitystore.service.contract.ServiceContractService;
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
51
52
53
54 public class ActiveServiceContractGetRequest extends AbstractIdentityStoreRequest
55 {
56 private final String _strTargetClientCode;
57
58
59
60
61
62
63
64 public ActiveServiceContractGetRequest( String _strTargetClientCode, String strClientCode, final String authorName, final String authorType )
65 throws IdentityStoreException
66 {
67 super( strClientCode, authorName, authorType );
68 this._strTargetClientCode = _strTargetClientCode;
69 }
70
71 @Override
72 protected void validateSpecificRequest( ) throws IdentityStoreException
73 {
74 IdentityRequestValidator.instance( ).checkTargetClientCode( _strTargetClientCode );
75 }
76
77
78
79
80
81
82
83 @Override
84 public ServiceContractSearchResponse doSpecificRequest( ) throws IdentityStoreException
85 {
86 final ServiceContractSearchResponse response = new ServiceContractSearchResponse( );
87
88 final ServiceContract activeServiceContract = ServiceContractService.instance( ).getActiveServiceContract( _strTargetClientCode );
89 if ( activeServiceContract == null )
90 {
91 response.setStatus( ResponseStatusFactory.notFound( ).setMessageKey( Constants.PROPERTY_REST_ERROR_NO_SERVICE_CONTRACT_FOUND ) );
92 return response;
93 }
94
95
96 for ( final AttributeCertification certification : activeServiceContract.getAttributeCertifications( ) )
97 {
98 for ( final RefAttributeCertificationProcessus processus : certification.getRefAttributeCertificationProcessus( ) )
99 {
100 processus.setLevel(
101 AttributeCertificationDefinitionService.instance( ).get( processus.getCode( ), certification.getAttributeKey( ).getKeyName( ) ) );
102 }
103 }
104
105 response.setServiceContract( DtoConverter.convertContractToDto( activeServiceContract ) );
106 response.setStatus( ResponseStatusFactory.ok( ).setMessageKey( Constants.PROPERTY_REST_INFO_SUCCESSFUL_OPERATION ) );
107
108 return response;
109 }
110
111 }