b7496d836be418a00e1c47b3dc042daec3b5a611
[vnfsdk/refrepo.git] /
1 /**
2  * Copyright 2017 Huawei Technologies Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.vnfsdk.marketplace.db.resource;
17
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.List;
21 import java.util.Map;
22
23 import org.onap.vnfsdk.marketplace.db.common.Parameters;
24 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
25 import org.onap.vnfsdk.marketplace.db.exception.MarketplaceResourceException;
26 import org.onap.vnfsdk.marketplace.db.util.MarketplaceDbUtil;
27 import org.onap.vnfsdk.marketplace.db.wrapper.PackageHandler;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30
31 public class PackageManager {
32     private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
33     private static PackageManager manager;
34     PackageHandler handler = new PackageHandler();
35
36     /**
37      * get PackageManager instance.
38      * @return PackageManager instance
39      */
40     public static synchronized PackageManager getInstance() {
41         if (manager == null) {
42             manager = new PackageManager();
43         }
44         return manager;
45     }
46
47     private PackageManager() {}
48
49     /**
50      * add package.
51      * @param packageData package data
52      * @return PackageData
53      * @throws MarketplaceResourceException e
54      */
55     public PackageData addPackage(PackageData packageData) throws MarketplaceResourceException {
56         LOGGER.info("start add package info  to db.info:" + MarketplaceDbUtil.objectToString(packageData));
57         PackageData data = handler.create(packageData);
58         LOGGER.info(" package info  to db end.info:" + MarketplaceDbUtil.objectToString(data));
59         return data;
60     }
61
62     /**
63      * query package by package id.
64      * @param csarId package id
65      * @return package data list
66      * @throws MarketplaceResourceException e
67      */
68     public List<PackageData> queryPackageByCsarId(String csarId)
69             throws MarketplaceResourceException {
70         LOGGER.info("start query package info by csarid." + csarId);
71         List<PackageData> data = handler.queryByID(csarId);
72         LOGGER.info("query package info end.size:" + data.size() + "detail:"
73                 + MarketplaceDbUtil.objectToString(data));
74         return data;
75     }
76
77     /**
78      * query package by condition.
79      * @param name package name
80      * @param provider package provider
81      * @param version package version
82      * @param deletionPending deletionPending
83      * @param type package type
84      * @return package data list
85      * @throws MarketplaceResourceException e
86      */
87     public List<PackageData> queryPackage(String name, String provider, String version,
88             String deletionPending, String type) throws MarketplaceResourceException {
89         LOGGER.info("start query package info.name:" + name + " provider:" + provider + " version:"
90                 + version + " type:" + type);
91         Map<String, String> queryParam = new HashMap<>();
92         if (MarketplaceDbUtil.isNotEmpty(name)) {
93             queryParam.put(Parameters.name.name(), name);
94         }
95         if (MarketplaceDbUtil.isNotEmpty(version)) {
96             queryParam.put(Parameters.version.name(), version);
97         }
98         if (MarketplaceDbUtil.isNotEmpty(deletionPending)) {
99             queryParam.put(Parameters.deletionPending.name(), deletionPending);
100         }
101         if (MarketplaceDbUtil.isNotEmpty(type)) {
102             queryParam.put(Parameters.type.name(), type);
103         }
104         if (MarketplaceDbUtil.isNotEmpty(provider)) {
105             queryParam.put(Parameters.provider.name(), provider);
106         }
107         List<PackageData> data = handler.query(queryParam);
108         LOGGER.info("query package info end.size:" + data.size() + "detail:"
109                 + MarketplaceDbUtil.objectToString(data));
110         return data;
111     }
112
113     /**
114      * delete package according package id.
115      * @param packageId package id
116      * @throws MarketplaceResourceException e
117      */
118     public void deletePackage(String packageId) throws MarketplaceResourceException {
119         LOGGER.info("start delete package info by id." + packageId);
120         handler.delete(packageId);
121         LOGGER.info(" delete package info end id." + packageId);
122     }
123
124     /**
125      * update download count of package according package id.
126      * @param packageId package id
127      * @throws MarketplaceResourceException e
128      */
129     public void updateDownloadCount(String packageId) throws MarketplaceResourceException
130     {
131         LOGGER.info("Request received for Updating down load count for ID:" + packageId);
132
133         //STEP 1: Get the Existing download  count from DB
134         //-------------------------------------------------
135         List<PackageData> data = handler.queryByID(packageId);
136         if(data.isEmpty())
137         {
138             LOGGER.info("Package Info not foun for ID:" + packageId);
139             return;
140         }
141
142         //STEP 2: Increment download Count in DB
143         //--------------------------------------
144         PackageData oPackageData = data.get(0);
145         int idownloadcount = oPackageData.getDownloadCount();
146         oPackageData.setDownloadCount(++idownloadcount);
147
148         handler.update(oPackageData);
149
150         LOGGER.info("Download count updated to :" + idownloadcount);
151     }
152 }
153