From 6d8aff7b3657332020ef215eb1b2fc16017e4cc8 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Sun, 26 Jan 2014 13:34:03 +0000
Subject: [PATCH] #395 feature - Added license history entity and new angular directive to load file content

---
 securis/src/main/java/net/curisit/securis/services/LicenseResource.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
index 005ef97..f9cb7c3 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
@@ -1,5 +1,6 @@
 package net.curisit.securis.services;
 
+import java.io.IOException;
 import java.util.Date;
 import java.util.List;
 
@@ -21,6 +22,7 @@
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 
+import net.curisit.integrity.commons.JsonUtils;
 import net.curisit.integrity.commons.Utils;
 import net.curisit.integrity.exception.CurisException;
 import net.curisit.securis.DefaultExceptionHandler;
@@ -31,6 +33,7 @@
 import net.curisit.securis.security.Securable;
 import net.curisit.securis.utils.TokenHelper;
 
+import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -124,7 +127,7 @@
 		{ MediaType.APPLICATION_JSON })
 	@Transactional
 	public Response create(License lic, @Context BasicSecurityContext bsc) {
-		log.info("Creating new organization");
+		log.info("Creating new license from create()");
 		EntityManager em = emProvider.get();
 		Pack pack = null;
 		if (lic.getPackId() != null) {
@@ -143,7 +146,7 @@
 		}
 
 		try {
-			User createdBy = getUser(lic.getCreatedById(), em);
+			User createdBy = getUser(bsc.getUserPrincipal().getName(), em);
 			lic.setCreatedBy(createdBy);
 		} catch (CurisException ex) {
 			String createdByUsername = lic.getCreatedById();
@@ -161,6 +164,31 @@
 		return Response.ok(lic).build();
 	}
 
+	@POST
+	@Path("/")
+	@Consumes(MediaType.MULTIPART_FORM_DATA)
+	@Securable
+	@Produces(
+		{ MediaType.APPLICATION_JSON })
+	@Transactional
+	public Response createWithFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException {
+		License lic = new License();
+		lic.setCode(mpfdi.getFormDataPart("code", String.class, null));
+		lic.setRequestData(mpfdi.getFormDataPart("request_data", String.class, null));
+		lic.setPackId(mpfdi.getFormDataPart("pack_id", Integer.class, null));
+		lic.setFullName(mpfdi.getFormDataPart("full_name", String.class, null));
+		lic.setEmail(mpfdi.getFormDataPart("email", String.class, null));
+		lic.setComments(mpfdi.getFormDataPart("comments", String.class, null));
+		try {
+			log.info("File content: {}", lic.getRequestData());
+			log.info("License read from multipart: {}", JsonUtils.toJSON(lic));
+		} catch (CurisException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return create(lic, bsc);
+	}
+
 	private User getUser(String username, EntityManager em) throws CurisException {
 		User user = null;
 		if (username != null) {

--
Gitblit v1.3.2