diff DVN-web/src/main/java/de/mpiwg/monographs/servlet/GetStudies.java @ 5:dd9adfc73390

adding class de.mpiwg.monographs.servlet.GetStudies.
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Thu, 07 May 2015 16:18:48 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DVN-web/src/main/java/de/mpiwg/monographs/servlet/GetStudies.java	Thu May 07 16:18:48 2015 +0200
@@ -0,0 +1,85 @@
+package de.mpiwg.monographs.servlet;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.logging.Logger;
+
+import javax.ejb.EJB;
+import javax.inject.Inject;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+import org.swordapp.server.AuthCredentials;
+import org.swordapp.server.SwordAuthException;
+import org.swordapp.server.SwordServerException;
+
+import edu.harvard.iq.dvn.api.datadeposit.SwordAuth;
+import edu.harvard.iq.dvn.core.admin.RoleServiceLocal;
+import edu.harvard.iq.dvn.core.admin.UserServiceLocal;
+import edu.harvard.iq.dvn.core.admin.VDCUser;
+import edu.harvard.iq.dvn.core.study.StudyServiceLocal;
+import edu.harvard.iq.dvn.core.vdc.VDCServiceLocal;
+import edu.harvard.iq.dvn.core.web.study.StudyUI;
+
+public class GetStudies extends AbstractMonographServlet{
+	
+	private static final long serialVersionUID = -5284971577250313161L;
+
+	private static Logger LOGGER = Logger.getLogger(GetStudies.class.getCanonicalName());
+	
+    @EJB VDCServiceLocal vdcService;
+    @EJB RoleServiceLocal roleService;
+    @EJB UserServiceLocal userService;
+    
+	@Inject
+	private SwordAuth swordAuth;
+    private @EJB StudyServiceLocal studyService;
+	
+	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+		
+		LOGGER.info("XXXXXXXXXXXXXXX GetStudies XXXXXXXXXXXXXXXXXXX");
+		
+		JSONObject jsonResponse = new JSONObject();	
+		try {
+			
+			response.setContentType("application/json");
+			
+			
+			String userName = request.getParameter("user");
+			String password = request.getParameter("password");
+			
+			AuthCredentials authCredentials = new AuthCredentials(userName, password, null);
+			VDCUser user = swordAuth.auth(authCredentials);
+			
+			if(user != null){
+				
+				String orderBy = "s.createTime";
+				Boolean ascending = true;
+				List studyVersionIds = studyService.getAllStudyVersionIdsByContributor(user.getId(), orderBy, ascending);
+				List deaccessionedStudyVersionIds = studyService.getAllDeaccessionedStudyVersionIdsByContributor(user.getId(), orderBy, ascending);
+				
+				JSONArray studiesArray = new JSONArray();
+				for (Object studyVersionId: studyVersionIds) {
+					 StudyUI studyUI = new StudyUI((Long)studyVersionId,user);
+					 
+					 JSONObject studyJson = MonographUtils.jsonStudyUI(studyUI);
+					 studiesArray.put(studyJson);
+				}
+				jsonResponse.put("studies", studiesArray);
+				jsonResponse.put("state", "ok");
+			}
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		java.io.PrintWriter out = response.getWriter();
+		out.print(jsonResponse);
+		out.flush();
+		
+	}
+
+}