From 94c288b4f8d353c44b64e40c0863c7fce6782293 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Thu, 24 Sep 2015 17:26:14 +0000
Subject: [PATCH] #2756 fix - chnaged API to allow activation by code and other UI changes

---
 securis/src/main/java/net/curisit/securis/db/License.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/License.java b/securis/src/main/java/net/curisit/securis/db/License.java
index 6c0ec5b..fcaec12 100644
--- a/securis/src/main/java/net/curisit/securis/db/License.java
+++ b/securis/src/main/java/net/curisit/securis/db/License.java
@@ -54,6 +54,7 @@
 @JsonIgnoreProperties(ignoreUnknown = true)
 @NamedQueries({
         @NamedQuery(name = "license-by-code", query = "SELECT l FROM License l where l.code = :code"),
+        @NamedQuery(name = "license-by-activation-code", query = "SELECT l FROM License l where l.activationCode = :activationCode"),
         @NamedQuery(name = "last-code-suffix-used-in-pack", query = "SELECT max(l.codeSuffix) FROM License l where l.pack.id = :packId"),
         @NamedQuery(name = "list-licenses-by-pack", query = "SELECT l FROM License l where l.pack.id = :packId"),
         @NamedQuery(name = "list-licenses-by-req-data", query = "SELECT l FROM License l where l.reqDataHash = :hash"),
@@ -72,6 +73,10 @@
     private int id;
 
     private String code;
+
+    @Column(name = "activation_code")
+    @JsonProperty("activation_code")
+    private String activationCode;
 
     @Column(name = "code_suffix")
     @JsonProperty("code_suffix")
@@ -397,6 +402,26 @@
         }
     }
 
+    /**
+     * Return licenses with status: REquested, ACtive, Pre-Active for a given
+     * request data
+     * 
+     * @param requestData
+     * @param em
+     * @return
+     * @throws SeCurisServiceException
+     */
+    public static License findLicenseByActivationCode(String activationCode, EntityManager em) throws SeCurisServiceException {
+        TypedQuery<License> query = em.createNamedQuery("license-by-activation-code", License.class);
+        query.setParameter("activationCode", activationCode);
+        try {
+            return query.getSingleResult();
+        } catch (NoResultException e) {
+            // There is no license for request data
+            return null;
+        }
+    }
+
     public static License findActiveLicenseByRequestData(String requestData, EntityManager em) throws SeCurisServiceException {
         TypedQuery<License> query = em.createNamedQuery("list-active-licenses-by-req-data", License.class);
         query.setParameter("hash", BlockedRequest.generateHash(requestData));
@@ -435,4 +460,12 @@
         this.codeSuffix = codeSuffix;
     }
 
+    public String getActivationCode() {
+        return activationCode;
+    }
+
+    public void setActivationCode(String activationCode) {
+        this.activationCode = activationCode;
+    }
+
 }

--
Gitblit v1.3.2