From ddec2c5c7b7842536d6d705c2de20f96e16c8aa8 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 22 Oct 2014 17:38:57 +0000
Subject: [PATCH] #2021 feature - Added blocked request table and refactoring License actions

---
 securis/src/main/java/net/curisit/securis/services/ApiResource.java |   86 ++++++++++++++++++++++++------------------
 1 files changed, 49 insertions(+), 37 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/ApiResource.java b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
index 7c843d0..23913e0 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApiResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
@@ -28,8 +28,6 @@
 import net.curisit.securis.beans.SignedLicenseBean;
 import net.curisit.securis.beans.StatusBean;
 import net.curisit.securis.db.License;
-import net.curisit.securis.db.LicenseType;
-import net.curisit.securis.db.Pack;
 import net.curisit.securis.security.BasicSecurityContext;
 import net.curisit.securis.security.Securable;
 import net.curisit.securis.services.exception.SeCurisServiceException;
@@ -96,9 +94,10 @@
         return Response.ok(status).build();
     }
 
-
     /**
-     * Request a new license file based in a RequestBean object sent as parameter 
+     * Request a new license file based in a RequestBean object sent as
+     * parameter
+     * 
      * @param mpfdi
      * @param bsc
      * @return
@@ -108,17 +107,18 @@
     @POST
     @Path("/request")
     @Consumes(MediaType.APPLICATION_JSON)
-    //TODO: Enable this: @Securable
+    // TODO: Enable this: @Securable
     @Produces({
         MediaType.APPLICATION_JSON
     })
     @Transactional
-    public Response createFromRequest(RequestBean request, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+    public Response createFromRequest(RequestBean request, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException,
+            SeCurisException {
         LOG.info("Request to get license: {}", request);
 
         Map<String, Object> metadata = getLicenseMetadata(request);
         License licDB = getLicenseData(request);
-        
+
         Date expirationDate = licDB.getExpirationDate();
         String licenseTypeCode = licDB.getPack().getLicenseType().getCode();
         String licenseCode = licDB.getCode();
@@ -126,9 +126,10 @@
         SignedLicenseBean signedLic = new SignedLicenseBean(lic);
         return Response.ok(signedLic).build();
     }
-    
+
     /**
      * Returns a License file in JSON format from an uploaded Request file
+     * 
      * @param mpfdi
      * @param bsc
      * @return
@@ -145,12 +146,14 @@
     })
     @Transactional
     @SuppressWarnings("unchecked")
-    public Response createFromRequestFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+    public Response createFromRequestFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException,
+            SeCurisServiceException, SeCurisException {
         RequestBean req = new RequestBean();
-        req.setAppCode(mpfdi.getFormDataPart("appCode", String.class, null));
+        req.setPackCode(mpfdi.getFormDataPart("packCode", String.class, null));
+        req.setLicenseTypeCode(mpfdi.getFormDataPart("licenseTypeCode", String.class, null));
+        req.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
         req.setArch(mpfdi.getFormDataPart("arch", String.class, null));
         req.setCrcLogo(mpfdi.getFormDataPart("crcLogo", String.class, null));
-        req.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
         req.setMacAddresses(mpfdi.getFormDataPart("macAddresses", List.class, null));
         req.setOsName(mpfdi.getFormDataPart("osName", String.class, null));
 
@@ -170,12 +173,13 @@
     @POST
     @Path("/renew")
     @Consumes(MediaType.APPLICATION_JSON)
-    //TODO: Enable this: @Securable
+    // TODO: Enable this: @Securable
     @Produces({
         MediaType.APPLICATION_JSON
     })
     @Transactional
-    public Response renewFromPreviousLicense(LicenseBean previousLic, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+    public Response renewFromPreviousLicense(LicenseBean previousLic, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException,
+            SeCurisException {
         LOG.info("Renew license: {}", previousLic);
 
         if (previousLic.getExpirationDate().after(DateUtils.addMonths(new Date(), 1))) {
@@ -184,16 +188,17 @@
 
         Map<String, Object> metadata = getLicenseMetadata(previousLic);
         License licDB = getLicenseData(previousLic);
-        
+
         Date expirationDate = licDB.getExpirationDate();
         String licenseTypeCode = licDB.getPack().getLicenseType().getCode();
         String licenseCode = licDB.getCode();
         LicenseBean lic = licenseGenerator.generateLicense(previousLic, metadata, expirationDate, licenseTypeCode, licenseCode);
         return Response.ok(lic).build();
     }
-    
+
     /**
      * Returns a new License file in JSON format based in a previous license
+     * 
      * @param mpfdi
      * @param bsc
      * @return
@@ -210,12 +215,15 @@
     })
     @Transactional
     @SuppressWarnings("unchecked")
-    public Response renewFromLicenseFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+    public Response renewFromLicenseFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException,
+            SeCurisServiceException, SeCurisException {
         LicenseBean lic = new LicenseBean();
-        // TODO: Add more license parameters
-        lic.setAppCode(mpfdi.getFormDataPart("appCode", String.class, null));
+
+        lic.setAppName(mpfdi.getFormDataPart("appName", String.class, null));
         lic.setArch(mpfdi.getFormDataPart("arch", String.class, null));
         lic.setCrcLogo(mpfdi.getFormDataPart("crcLogo", String.class, null));
+        lic.setPackCode(mpfdi.getFormDataPart("packCode", String.class, null));
+        lic.setLicenseTypeCode(mpfdi.getFormDataPart("licenseCode", String.class, null));
         lic.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
         lic.setMacAddresses(mpfdi.getFormDataPart("macAddresses", List.class, null));
         lic.setOsName(mpfdi.getFormDataPart("osName", String.class, null));
@@ -227,46 +235,50 @@
 
         return createFromRequest(lic, bsc);
     }
-    
-    
-    
+
     private License getLicenseData(RequestBean req) throws SeCurisException {
-        // TODO: The dummy expiration date is temporal, this info should be read from DB
+        // TODO: The dummy expiration date is temporal, this info should be read
+        // from DB
         License lic = new License();
-        lic.setExpirationDate(new Date(new Date().getTime() + (1000L * 3600 * 24 * 30 )));
-        lic.setCode(req.getAppCode() + "-LIC-INTERNAL");
-        LicenseType lt = new LicenseType();
-        lt.setCode("TYPE-" + req.getAppCode());
-        Pack pack = new Pack();
-        pack.setLicenseType(lt);
-        lic.setPack(pack);
+        // TODO: IMPLEMENT LICENSE GENERATION
+
+        // lic.setExpirationDate(new Date(new Date().getTime() + (1000L * 3600 *
+        // 24 * 30)));
+        // lic.setCode(req.getPackCode() + "-LIC-INTERNAL");
+        // LicenseType lt = new LicenseType();
+        // lt.setCode("TYPE-" + req.getAppCode());
+        // Pack pack = new Pack();
+        // pack.setLicenseType(lt);
+        // lic.setPack(pack);
         return lic;
     }
-        
+
     /**
      * Extract the corresponding metadata for the Request license given
+     * 
      * @param req
      * @return
      * @throws SeCurisException
      */
     @SuppressWarnings("unchecked")
     private Map<String, Object> getLicenseMetadata(RequestBean req) throws SeCurisException {
-        // TODO: The dummy metadata file is temporal, this info should be read from DB
-        File dummyMetadata =  new File(System.getProperty("user.home") + File.separator + ".SeCuris" + File.separator + "dummy_metadata.json");
+        // TODO: The dummy metadata file is temporal, this info should be read
+        // from DB
+        File dummyMetadata = new File(System.getProperty("user.home") + File.separator + ".SeCuris" + File.separator + "dummy_metadata.json");
         Map<String, Object> metadata = null;
         try {
             String metadataJson = IOUtils.toString(dummyMetadata.toURI());
-            metadata = (Map<String, Object>)JsonUtils.json2map(metadataJson).get(req.getAppCode());
-            if (metadata == null)
-                throw new SeCurisException("App code in request is unknown: " + req.getAppCode());
+            metadata = (Map<String, Object>) JsonUtils.json2map(metadataJson).get(req.getLicenseTypeCode());
+            if (metadata == null) {
+                throw new SeCurisException("App code in request is unknown: " + req.getLicenseTypeCode());
+            }
             metadata = new TreeMap<>(metadata);
         } catch (IOException e) {
             LOG.error("Error reading dummy metadata file", e);
             throw new SeCurisException("Error reading dummy metadata file");
         }
-        
+
         return metadata;
     }
 
-        
 }

--
Gitblit v1.3.2