rsanchez
2014-10-15 973ee9056995d1c9e7a533d9999329a70f0d2b2d
securis/src/main/java/net/curisit/securis/services/PackResource.java
....@@ -3,6 +3,7 @@
33 import java.security.Principal;
44 import java.util.Date;
55 import java.util.List;
6
+import java.util.Set;
67
78 import javax.annotation.security.RolesAllowed;
89 import javax.inject.Inject;
....@@ -26,8 +27,10 @@
2627 import net.curisit.securis.DefaultExceptionHandler;
2728 import net.curisit.securis.SeCurisException;
2829 import net.curisit.securis.db.LicenseType;
30
+import net.curisit.securis.db.PackMetadata;
2931 import net.curisit.securis.db.Organization;
3032 import net.curisit.securis.db.Pack;
33
+import net.curisit.securis.db.PackMetadata;
3134 import net.curisit.securis.db.User;
3235 import net.curisit.securis.security.BasicSecurityContext;
3336 import net.curisit.securis.security.Securable;
....@@ -155,7 +158,15 @@
155158 pack.setCreatedBy(user);
156159 pack.setCreationTimestamp(new Date());
157160 em.persist(pack);
158
-
161
+ Set<PackMetadata> newMD = pack.getMetadata();
162
+
163
+ if (newMD != null) {
164
+ for (PackMetadata md : newMD) {
165
+ md.setPack(pack);
166
+ em.persist(md);
167
+ }
168
+ }
169
+ pack.setMetadata(newMD);
159170 return Response.ok(pack).build();
160171 }
161172
....@@ -205,6 +216,19 @@
205216
206217 em.persist(currentPack);
207218
219
+ Set<PackMetadata> newMD = pack.getMetadata();
220
+ for (PackMetadata currentMd : currentPack.getMetadata()) {
221
+ if (newMD == null || !newMD.contains(currentMd));
222
+ em.remove(currentMd);
223
+ }
224
+
225
+ if (newMD != null) {
226
+ for (PackMetadata md : newMD) {
227
+ md.setPack(currentPack);
228
+ em.persist(md);
229
+ }
230
+ }
231
+ currentPack.setMetadata(newMD);
208232 return Response.ok(pack).build();
209233 }
210234