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