1 package org.openecomp.sdcrests.vendorlicense.rest.services;
3 import org.openecomp.sdc.logging.context.MdcUtil;
4 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
5 import org.openecomp.sdc.logging.types.LoggerServiceName;
6 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
7 import org.openecomp.sdc.vendorlicense.VendorLicenseManagerFactory;
8 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
9 import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
10 import org.openecomp.sdc.versioning.dao.types.Version;
11 import org.openecomp.sdcrests.vendorlicense.rest.LicenseKeyGroupLimits;
12 import org.openecomp.sdcrests.vendorlicense.rest.mapping.LimitCreationDto;
13 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitCreationDto;
14 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitDto;
15 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitRequestDtoToLimitEntity;
16 import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
17 import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
18 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
19 import org.springframework.context.annotation.Scope;
20 import org.springframework.stereotype.Service;
22 import javax.inject.Named;
23 import javax.ws.rs.core.Response;
24 import java.util.Collection;
27 @Service("licenseKeyGroupLimits")
28 @Scope(value = "prototype")
29 public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
31 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
32 private VendorLicenseManager vendorLicenseManager =
33 VendorLicenseManagerFactory.getInstance().createInterface();
35 public static final String parent = "LicenseKeyGroup";
39 public Response createLimit(LimitRequestDto request,
42 String licenseKeyGroupId,
45 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
47 MdcUtil.initMdc(LoggerServiceName.Create_LIMIT.toString());
48 Version version = new Version(versionId);
49 vendorLicenseManager.getLicenseKeyGroup(
50 new LicenseKeyGroupEntity(vlmId, version, licenseKeyGroupId));
52 LimitEntity limitEntity =
53 new MapLimitRequestDtoToLimitEntity().applyMapping(request, LimitEntity.class);
54 limitEntity.setVendorLicenseModelId(vlmId);
55 limitEntity.setVersion(version);
56 limitEntity.setEpLkgId(licenseKeyGroupId);
57 limitEntity.setParent(parent);
59 LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity);
60 MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
61 LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto.class);
62 /*StringWrapperResponse result =
63 createdLimit != null ? new StringWrapperResponse(createdLimit.getId())
66 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
68 //return Response.ok(result).build();
69 return Response.ok(createdLimitDto != null ? createdLimitDto : null).build();
73 public Response listLimits(String vlmId, String versionId, String licenseKeyGroupId,
75 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
77 MdcUtil.initMdc(LoggerServiceName.List_EP.toString());
78 Version version = new Version(versionId);
80 .getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, version, licenseKeyGroupId));
82 Collection<LimitEntity> limits =
83 vendorLicenseManager.listLimits(vlmId, version, licenseKeyGroupId);
85 GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
86 MapLimitEntityToLimitDto outputMapper =
87 new MapLimitEntityToLimitDto();
88 for (LimitEntity limit : limits) {
89 result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
92 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
94 return Response.ok(result).build();
98 public Response updateLimit(LimitRequestDto request,
101 String licenseKeyGroupId,
104 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id",
107 MdcUtil.initMdc(LoggerServiceName.Update_LIMIT.toString());
109 Version version = new Version(versionId);
111 .getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, version, licenseKeyGroupId));
113 LimitEntity limitEntity =
114 new MapLimitRequestDtoToLimitEntity().applyMapping(request, LimitEntity.class);
115 limitEntity.setVendorLicenseModelId(vlmId);
116 limitEntity.setVersion(version);
117 limitEntity.setEpLkgId(licenseKeyGroupId);
118 limitEntity.setId(limitId);
119 limitEntity.setParent(parent);
121 vendorLicenseManager.updateLimit(limitEntity);
124 .debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id", limitId);
126 return Response.ok().build();
130 * Delete License Key Group.
132 * @param vlmId the vlm id
133 * @param licenseKeyGroupId the license Key Group id
134 * @param limitId the limitId
135 * @param user the user
136 * @return the response
138 public Response deleteLimit(String vlmId, String versionId, String licenseKeyGroupId,
139 String limitId, String user) {
140 mdcDataDebugMessage.debugEntryMessage("VLM id, Verison Id, LKG id, Limit Id", vlmId, versionId,
141 licenseKeyGroupId, limitId);
142 MdcUtil.initMdc(LoggerServiceName.Delete_LIMIT.toString());
144 Version version = new Version(versionId);
146 .getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, version, licenseKeyGroupId));
148 LimitEntity limitInput = new LimitEntity();
149 limitInput.setVendorLicenseModelId(vlmId);
150 limitInput.setVersion(version);
151 limitInput.setEpLkgId(licenseKeyGroupId);
152 limitInput.setId(limitId);
153 limitInput.setParent(parent);
155 vendorLicenseManager.deleteLimit(limitInput);
157 mdcDataDebugMessage.debugExitMessage("VLM id, Verison Id, LKG id, Limit Id", vlmId, versionId,
158 licenseKeyGroupId, limitId);
160 return Response.ok().build();
164 public Response getLimit(String vlmId, String versionId, String licenseKeyGroupId,
165 String limitId, String user) {
166 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId,
169 MdcUtil.initMdc(LoggerServiceName.Get_LIMIT.toString());
170 Version version = new Version(versionId);
172 .getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, version, licenseKeyGroupId));
173 LimitEntity limitInput = new LimitEntity();
174 limitInput.setVendorLicenseModelId(vlmId);
175 limitInput.setVersion(version);
176 limitInput.setEpLkgId(licenseKeyGroupId);
177 limitInput.setId(limitId);
178 LimitEntity limit = vendorLicenseManager.getLimit(limitInput);
180 LimitEntityDto entitlementPoolEntityDto = limit == null ? null
181 : new MapLimitEntityToLimitDto().applyMapping(limit, LimitEntityDto.class);
184 .debugExitMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId, limitId);
186 return Response.ok(entitlementPoolEntityDto).build();