Mercurial > hg > LGDataverses
diff src/main/java/de/mpiwg/monographs/servlet/RemoveFileMetadata.java @ 0:fcb8807fbd84
Fist commit!
| author | "jurzua <jurzua@mpiwg-berlin.mpg.de>" |
|---|---|
| date | Tue, 10 Mar 2015 15:15:30 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/monographs/servlet/RemoveFileMetadata.java Tue Mar 10 15:15:30 2015 +0100 @@ -0,0 +1,105 @@ +package de.mpiwg.monographs.servlet; + +import java.io.IOException; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; +import javax.inject.Inject; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.codehaus.jettison.json.JSONException; +import org.codehaus.jettison.json.JSONObject; +import org.swordapp.server.AuthCredentials; +import org.swordapp.server.SwordServerException; + +import edu.harvard.iq.dvn.api.datadeposit.SwordAuth; +import edu.harvard.iq.dvn.core.admin.VDCUser; +import edu.harvard.iq.dvn.core.study.EditStudyFilesService; +import edu.harvard.iq.dvn.core.study.EditStudyService; +import edu.harvard.iq.dvn.core.study.Study; +import edu.harvard.iq.dvn.core.study.StudyFileEditBean; + +public class RemoveFileMetadata extends AbstractMonographServlet { + + private static final Logger logger = Logger.getLogger("monographs.RemoveFileMetadata"); + + private EditStudyFilesService editStudyFilesService; + private Context ctx = null; + + @Inject + private SwordAuth swordAuth; + + public void init() throws ServletException {} + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + JSONObject jsonResponse = new JSONObject(); + + String studyGlobalId = request.getParameter("studyId"); + String user = request.getParameter("user"); + String password = request.getParameter("password"); + Long fileMetadataId = null; + + try{ + fileMetadataId = Long.parseLong(request.getParameter("fileMetadataId")); + }catch(Exception e){ + e.printStackTrace(); + } + + try { + + editStudyFilesService = (EditStudyFilesService) getCtx().lookup("java:comp/env/editStudyFiles"); + + } catch (NamingException e) { + e.printStackTrace(); + FacesContext context = FacesContext.getCurrentInstance(); + FacesMessage errMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), null); + context.addMessage(null, errMessage); + } + + Study study = null; + try { + study = getStudy(studyGlobalId); + editStudyFilesService.setStudyVersion(study.getId());//ok + } catch (Exception e) { + logger.log(Level.WARNING, "Study no found. " + studyGlobalId); + error(jsonResponse, e); + } + + try { + + for(Object obj : editStudyFilesService.getCurrentFiles()){ + StudyFileEditBean file = (StudyFileEditBean)obj; + + if(file.getFileMetadata().getId().equals(fileMetadataId)){ + file.setDeleteFlag(true); + } + } + + AuthCredentials authCredentials = new AuthCredentials(user, password, null); + VDCUser vdcUser = swordAuth.auth(authCredentials); + + editStudyFilesService.save(vdcUser.getId(), vdcUser.getId()); + + jsonResponse.put("status", "ok"); + + + } catch (Exception e) { + logger.log(Level.SEVERE, e.getMessage()); + error(jsonResponse, e); + } + + java.io.PrintWriter out = response.getWriter(); + out.print(jsonResponse); + out.flush(); + } +}
