Removed reference to MDC for logging
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-license-rest / vendor-license-rest-services / src / main / java / org / openecomp / sdcrests / vendorlicense / rest / services / EntitlementPoolLimitsImpl.java
1 package org.openecomp.sdcrests.vendorlicense.rest.services;
2
3
4 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
5 import org.openecomp.sdc.vendorlicense.VendorLicenseManagerFactory;
6 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
7 import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
8 import org.openecomp.sdc.versioning.dao.types.Version;
9 import org.openecomp.sdcrests.vendorlicense.rest.EntitlementPoolLimits;
10 import org.openecomp.sdcrests.vendorlicense.rest.mapping.LimitCreationDto;
11 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitCreationDto;
12 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitDto;
13 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitRequestDtoToLimitEntity;
14 import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
15 import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
16 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
17 import org.springframework.context.annotation.Scope;
18 import org.springframework.stereotype.Service;
19
20 import javax.inject.Named;
21 import javax.ws.rs.core.Response;
22 import java.util.Collection;
23
24 @Named
25 @Service("entitlementPoolLimits")
26 @Scope(value = "prototype")
27 public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
28   private VendorLicenseManager vendorLicenseManager =
29       VendorLicenseManagerFactory.getInstance().createInterface();
30
31   private static final String PARENT = "EntitlementPool";
32
33   @Override
34   public Response createLimit(LimitRequestDto request,
35                               String vlmId,
36                               String versionId,
37                               String entitlementPoolId,
38                               String user) {
39     Version version = new Version(versionId);
40     vendorLicenseManager
41         .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
42
43     LimitEntity limitEntity =
44         new MapLimitRequestDtoToLimitEntity().applyMapping(request, LimitEntity.class);
45     limitEntity.setVendorLicenseModelId(vlmId);
46     limitEntity.setVersion(version);
47     limitEntity.setEpLkgId(entitlementPoolId);
48     limitEntity.setParent(PARENT);
49
50     LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity);
51     MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
52     LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto.class);
53
54     return Response.ok(createdLimitDto != null ? createdLimitDto : null).build();
55   }
56
57   @Override
58   public Response listLimits(String vlmId, String versionId, String entitlementPoolId, String
59       user) {
60     Version version = new Version(versionId);
61     vendorLicenseManager
62         .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
63
64     Collection<LimitEntity> limits =
65         vendorLicenseManager.listLimits(vlmId, version, entitlementPoolId);
66
67     GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
68     MapLimitEntityToLimitDto outputMapper =
69         new MapLimitEntityToLimitDto();
70     for (LimitEntity limit : limits) {
71       result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
72     }
73     return Response.ok(result).build();
74   }
75
76   @Override
77   public Response getLimit(String vlmId, String versionId, String entitlementPoolId,
78                            String limitId, String user) {
79     Version version = new Version(versionId);
80     vendorLicenseManager
81         .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
82     LimitEntity limitInput = new LimitEntity();
83     limitInput.setVendorLicenseModelId(vlmId);
84     limitInput.setVersion(version);
85     limitInput.setEpLkgId(entitlementPoolId);
86     limitInput.setId(limitId);
87     LimitEntity limit = vendorLicenseManager.getLimit(limitInput);
88
89     LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
90         new MapLimitEntityToLimitDto().applyMapping(limit, LimitEntityDto.class);
91     return Response.ok(entitlementPoolEntityDto).build();
92   }
93
94   @Override
95   public Response updateLimit(LimitRequestDto request,
96                               String vlmId,
97                               String versionId,
98                               String entitlementPoolId,
99                               String limitId,
100                               String user) {
101     Version version = new Version(versionId);
102     vendorLicenseManager
103         .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
104
105     LimitEntity limitEntity =
106         new MapLimitRequestDtoToLimitEntity().applyMapping(request, LimitEntity.class);
107     limitEntity.setVendorLicenseModelId(vlmId);
108     limitEntity.setVersion(version);
109     limitEntity.setEpLkgId(entitlementPoolId);
110     limitEntity.setId(limitId);
111     limitEntity.setParent(PARENT);
112
113     vendorLicenseManager.updateLimit(limitEntity);
114     return Response.ok().build();
115   }
116
117   /**
118    * Delete entitlement pool.
119    *
120    * @param vlmId             the vlm id
121    * @param entitlementPoolId the entitlement pool id
122    * @param limitId           the limitId
123    * @param user              the user
124    * @return the response
125    */
126   public Response deleteLimit(String vlmId, String versionId, String entitlementPoolId,
127                               String limitId, String user) {
128     Version version = new Version(versionId);
129     vendorLicenseManager.getEntitlementPool(
130         new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
131
132     LimitEntity limitInput = new LimitEntity();
133     limitInput.setVendorLicenseModelId(vlmId);
134     limitInput.setVersion(version);
135     limitInput.setEpLkgId(entitlementPoolId);
136     limitInput.setId(limitId);
137     limitInput.setParent(PARENT);
138
139     vendorLicenseManager.deleteLimit(limitInput);
140     return Response.ok().build();
141   }
142 }