From 59cdd2b7ebceae94fbecdb1eeb46a969666dc88f Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 10 Jan 2014 12:25:27 +0000
Subject: [PATCH] #394 feature - Added all catalog resources with refereced fields
---
securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java | 49 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
index 87b1c37..b229507 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
@@ -6,7 +6,7 @@
import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
+import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -23,6 +23,8 @@
import javax.ws.rs.core.Response.Status;
import net.curisit.integrity.commons.Utils;
+import net.curisit.securis.SecurisErrorHandler;
+import net.curisit.securis.db.Application;
import net.curisit.securis.db.LicenseType;
import net.curisit.securis.utils.TokenHelper;
@@ -39,13 +41,13 @@
@Path("/licensetype")
public class LicenseTypeResource {
+ private static final Logger log = LoggerFactory.getLogger(LicenseTypeResource.class);
+
@Inject
TokenHelper tokenHelper;
@Inject
Provider<EntityManager> emProvider;
-
- private static final Logger log = LoggerFactory.getLogger(LicenseTypeResource.class);
public LicenseTypeResource() {
}
@@ -62,8 +64,9 @@
log.info("Getting license types list ");
EntityManager em = emProvider.get();
- TypedQuery<LicenseType> q = em.createNamedQuery("list-license_types", LicenseType.class);
- List<LicenseType> list = q.getResultList();
+ Query q = em.createNamedQuery("list-license_types");
+ @SuppressWarnings("unchecked")
+ List<Object> list = q.getResultList();
return Response.ok(list).build();
}
@@ -98,13 +101,23 @@
@Produces(
{ MediaType.APPLICATION_JSON })
@Transactional
- public Response create(LicenseType app, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+ public Response create(LicenseType lt, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
log.info("Creating new license type");
EntityManager em = emProvider.get();
- app.setCreationTimestamp(new Date());
- em.persist(app);
+ Application app = null;
+ if (lt.getApplicationId() != null) {
+ app = em.find(Application.class, lt.getApplicationId());
+ if (app == null) {
+ log.error("LicenseType application with id {} not found in DB", lt.getApplicationId());
+ return Response.status(Status.NOT_FOUND).header(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "License type's app not found with ID: " + lt.getApplicationId()).build();
+ }
+ }
- return Response.ok(app).build();
+ lt.setApplication(app);
+ lt.setCreationTimestamp(new Date());
+ em.persist(lt);
+
+ return Response.ok(lt).build();
}
@PUT
@@ -114,16 +127,26 @@
@Consumes(MediaType.APPLICATION_JSON)
@Produces(
{ MediaType.APPLICATION_JSON })
- public Response modify(LicenseType app, @PathParam("ltid") String ltid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+ public Response modify(LicenseType lt, @PathParam("ltid") String ltid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
log.info("Modifying license type with id: {}", ltid);
EntityManager em = emProvider.get();
LicenseType currentlt = em.find(LicenseType.class, Integer.parseInt(ltid));
if (currentlt == null) {
log.error("LicenseType with id {} not found in DB", ltid);
- return Response.status(Status.NOT_FOUND).build();
+ return Response.status(Status.NOT_FOUND).header(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "License type not found with ID: " + ltid).build();
}
- currentlt.setName(app.getName());
- currentlt.setDescription(app.getDescription());
+ Application app = null;
+ if (lt.getApplicationId() != null) {
+ app = em.find(Application.class, lt.getApplicationId());
+ if (app == null) {
+ log.error("LicenseType application with id {} not found in DB", lt.getApplicationId());
+ return Response.status(Status.NOT_FOUND).header(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "License type's app not found with ID: " + lt.getApplicationId()).build();
+ }
+ }
+ currentlt.setCode(lt.getCode());
+ currentlt.setName(lt.getName());
+ currentlt.setDescription(lt.getDescription());
+ currentlt.setApplication(app);
em.persist(currentlt);
return Response.ok(currentlt).build();
--
Gitblit v1.3.2