1 package org.openecomp.sdcrests.vendorlicense.rest.services;
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;
20 import javax.inject.Named;
21 import javax.ws.rs.core.Response;
22 import java.util.Collection;
25 @Service("entitlementPoolLimits")
26 @Scope(value = "prototype")
27 public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
28 private VendorLicenseManager vendorLicenseManager =
29 VendorLicenseManagerFactory.getInstance().createInterface();
31 private static final String PARENT = "EntitlementPool";
34 public Response createLimit(LimitRequestDto request,
37 String entitlementPoolId,
39 Version version = new Version(versionId);
41 .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
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);
50 LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity);
51 MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
52 LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto.class);
54 return Response.ok(createdLimitDto != null ? createdLimitDto : null).build();
58 public Response listLimits(String vlmId, String versionId, String entitlementPoolId, String
60 Version version = new Version(versionId);
62 .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
64 Collection<LimitEntity> limits =
65 vendorLicenseManager.listLimits(vlmId, version, entitlementPoolId);
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));
73 return Response.ok(result).build();
77 public Response getLimit(String vlmId, String versionId, String entitlementPoolId,
78 String limitId, String user) {
79 Version version = new Version(versionId);
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);
89 LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
90 new MapLimitEntityToLimitDto().applyMapping(limit, LimitEntityDto.class);
91 return Response.ok(entitlementPoolEntityDto).build();
95 public Response updateLimit(LimitRequestDto request,
98 String entitlementPoolId,
101 Version version = new Version(versionId);
103 .getEntitlementPool(new EntitlementPoolEntity(vlmId, version, entitlementPoolId));
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);
113 vendorLicenseManager.updateLimit(limitEntity);
114 return Response.ok().build();
118 * Delete entitlement pool.
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
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));
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);
139 vendorLicenseManager.deleteLimit(limitInput);
140 return Response.ok().build();