2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdcrests.vendorlicense.rest.services;
23 import java.util.Comparator;
24 import java.util.stream.Collectors;
25 import javax.inject.Named;
26 import javax.ws.rs.core.Response;
27 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
28 import org.openecomp.sdc.vendorlicense.VendorLicenseManagerFactory;
29 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
30 import org.openecomp.sdc.versioning.dao.types.Version;
31 import org.openecomp.sdcrests.vendorlicense.rest.EntitlementPools;
32 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapEntitlementPoolEntityToEntitlementPoolEntityDto;
33 import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapEntitlementPoolRequestDtoToEntitlementPoolEntity;
34 import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
35 import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolRequestDto;
36 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
37 import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
38 import org.springframework.context.annotation.Scope;
39 import org.springframework.stereotype.Service;
42 @Service("entitlementPools")
43 @Scope(value = "prototype")
44 public class EntitlementPoolsImpl implements EntitlementPools {
45 private VendorLicenseManager vendorLicenseManager =
46 VendorLicenseManagerFactory.getInstance().createInterface();
49 * List entitlement pools response.
51 * @param vlmId the vlm id
52 * @param versionId the version
53 * @param user the user
54 * @return the response
56 public Response listEntitlementPools(String vlmId, String versionId, String user) {
58 MapEntitlementPoolEntityToEntitlementPoolEntityDto outputMapper =
59 new MapEntitlementPoolEntityToEntitlementPoolEntityDto();
61 GenericCollectionWrapper<EntitlementPoolEntityDto> result = new GenericCollectionWrapper<>(
62 vendorLicenseManager.listEntitlementPools(vlmId, new Version(versionId)).stream()
63 .sorted(Comparator.comparing(EntitlementPoolEntity::getName))
64 .map(item -> outputMapper.applyMapping(item, EntitlementPoolEntityDto.class))
65 .collect(Collectors.toList()));
67 return Response.ok(result).build();
71 * Create entitlement pool response.
73 * @param request the request
74 * @param vlmId the vlm id
75 * @param user the user
76 * @return the response
78 public Response createEntitlementPool(EntitlementPoolRequestDto request, String vlmId,
79 String versionId, String user) {
80 EntitlementPoolEntity entitlementPoolEntity =
81 new MapEntitlementPoolRequestDtoToEntitlementPoolEntity()
82 .applyMapping(request, EntitlementPoolEntity.class);
83 entitlementPoolEntity.setVendorLicenseModelId(vlmId);
84 entitlementPoolEntity.setVersion(new Version(versionId));
86 EntitlementPoolEntity createdEntitlementPool =
87 vendorLicenseManager.createEntitlementPool(entitlementPoolEntity);
88 StringWrapperResponse result =
89 createdEntitlementPool != null ? new StringWrapperResponse(createdEntitlementPool.getId())
91 return Response.ok(result).build();
95 * Update entitlement pool response.
97 * @param request the request
98 * @param vlmId the vlm id
99 * @param entitlementPoolId the entitlement pool id
100 * @param user the user
101 * @return the response
103 public Response updateEntitlementPool(EntitlementPoolRequestDto request, String vlmId,
104 String versionId, String entitlementPoolId, String user) {
105 EntitlementPoolEntity entitlementPoolEntity =
106 new MapEntitlementPoolRequestDtoToEntitlementPoolEntity()
107 .applyMapping(request, EntitlementPoolEntity.class);
108 entitlementPoolEntity.setVendorLicenseModelId(vlmId);
109 entitlementPoolEntity.setVersion(new Version(versionId));
110 entitlementPoolEntity.setId(entitlementPoolId);
112 vendorLicenseManager.updateEntitlementPool(entitlementPoolEntity);
113 return Response.ok().build();
117 * Gets entitlement pool.
119 * @param vlmId the vlm id
120 * @param versionId the version id
121 * @param entitlementPoolId the entitlement pool id
122 * @param user the user
123 * @return the entitlement pool
125 public Response getEntitlementPool(String vlmId, String versionId, String entitlementPoolId,
127 EntitlementPoolEntity epInput = new EntitlementPoolEntity();
128 epInput.setVendorLicenseModelId(vlmId);
129 epInput.setVersion(new Version(versionId));
130 epInput.setId(entitlementPoolId);
131 EntitlementPoolEntity entitlementPool = vendorLicenseManager.getEntitlementPool(epInput);
133 EntitlementPoolEntityDto entitlementPoolEntityDto = entitlementPool == null ? null :
134 new MapEntitlementPoolEntityToEntitlementPoolEntityDto()
135 .applyMapping(entitlementPool, EntitlementPoolEntityDto.class);
136 return Response.ok(entitlementPoolEntityDto).build();
140 * Delete entitlement pool response.
142 * @param vlmId the vlm id
143 * @param entitlementPoolId the entitlement pool id
144 * @param user the user
145 * @return the response
147 public Response deleteEntitlementPool(String vlmId, String versionId, String entitlementPoolId,
149 EntitlementPoolEntity epInput = new EntitlementPoolEntity();
150 epInput.setVendorLicenseModelId(vlmId);
151 epInput.setId(entitlementPoolId);
152 epInput.setVersion(new Version(versionId));
153 vendorLicenseManager.deleteEntitlementPool(epInput);
154 return Response.ok().build();