Mercurial > hg > LGDataverses
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(); + + } + +}