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