From 973ee9056995d1c9e7a533d9999329a70f0d2b2d Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 15 Oct 2014 07:49:46 +0000
Subject: [PATCH] #2021 config - Added pack and LicenseType Metadata management

---
 securis/src/main/java/net/curisit/securis/services/PackResource.java |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/PackResource.java b/securis/src/main/java/net/curisit/securis/services/PackResource.java
index 45c5bd9..39ac56d 100644
--- a/securis/src/main/java/net/curisit/securis/services/PackResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/PackResource.java
@@ -3,6 +3,7 @@
 import java.security.Principal;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.security.RolesAllowed;
 import javax.inject.Inject;
@@ -26,8 +27,10 @@
 import net.curisit.securis.DefaultExceptionHandler;
 import net.curisit.securis.SeCurisException;
 import net.curisit.securis.db.LicenseType;
+import net.curisit.securis.db.PackMetadata;
 import net.curisit.securis.db.Organization;
 import net.curisit.securis.db.Pack;
+import net.curisit.securis.db.PackMetadata;
 import net.curisit.securis.db.User;
 import net.curisit.securis.security.BasicSecurityContext;
 import net.curisit.securis.security.Securable;
@@ -155,7 +158,15 @@
         pack.setCreatedBy(user);
         pack.setCreationTimestamp(new Date());
         em.persist(pack);
-
+        Set<PackMetadata> newMD = pack.getMetadata(); 
+        
+        if (newMD != null) {
+            for (PackMetadata md : newMD) {
+                md.setPack(pack);
+                em.persist(md);
+            }
+        }
+        pack.setMetadata(newMD);
         return Response.ok(pack).build();
     }
 
@@ -205,6 +216,19 @@
 
         em.persist(currentPack);
 
+        Set<PackMetadata> newMD = pack.getMetadata(); 
+        for (PackMetadata currentMd : currentPack.getMetadata()) {
+            if (newMD == null || !newMD.contains(currentMd));
+                em.remove(currentMd);
+        }
+        
+        if (newMD != null) {
+            for (PackMetadata md : newMD) {
+                md.setPack(currentPack);
+                em.persist(md);
+            }
+        }
+        currentPack.setMetadata(newMD);
         return Response.ok(pack).build();
     }
 

--
Gitblit v1.3.2