|
0
|
1 package de.mpiwg.monographs.servlet;
|
|
|
2
|
|
|
3 import java.io.IOException;
|
|
|
4 import java.util.List;
|
|
|
5 import java.util.logging.Level;
|
|
|
6 import java.util.logging.Logger;
|
|
|
7
|
|
|
8 import javax.faces.application.FacesMessage;
|
|
|
9 import javax.faces.context.FacesContext;
|
|
|
10 import javax.inject.Inject;
|
|
|
11 import javax.naming.Context;
|
|
|
12 import javax.naming.InitialContext;
|
|
|
13 import javax.naming.NamingException;
|
|
|
14 import javax.servlet.ServletException;
|
|
|
15 import javax.servlet.http.HttpServlet;
|
|
|
16 import javax.servlet.http.HttpServletRequest;
|
|
|
17 import javax.servlet.http.HttpServletResponse;
|
|
|
18
|
|
|
19 import org.codehaus.jettison.json.JSONException;
|
|
|
20 import org.codehaus.jettison.json.JSONObject;
|
|
|
21 import org.swordapp.server.AuthCredentials;
|
|
|
22 import org.swordapp.server.SwordServerException;
|
|
|
23
|
|
|
24 import edu.harvard.iq.dvn.api.datadeposit.SwordAuth;
|
|
|
25 import edu.harvard.iq.dvn.core.admin.VDCUser;
|
|
|
26 import edu.harvard.iq.dvn.core.study.EditStudyFilesService;
|
|
|
27 import edu.harvard.iq.dvn.core.study.EditStudyService;
|
|
|
28 import edu.harvard.iq.dvn.core.study.Study;
|
|
|
29 import edu.harvard.iq.dvn.core.study.StudyFileEditBean;
|
|
|
30
|
|
|
31 public class RemoveFileMetadata extends AbstractMonographServlet {
|
|
|
32
|
|
|
33 private static final Logger logger = Logger.getLogger("monographs.RemoveFileMetadata");
|
|
|
34
|
|
|
35 private EditStudyFilesService editStudyFilesService;
|
|
|
36 private Context ctx = null;
|
|
|
37
|
|
|
38 @Inject
|
|
|
39 private SwordAuth swordAuth;
|
|
|
40
|
|
|
41 public void init() throws ServletException {}
|
|
|
42
|
|
|
43 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
|
44
|
|
|
45 JSONObject jsonResponse = new JSONObject();
|
|
|
46
|
|
|
47 String studyGlobalId = request.getParameter("studyId");
|
|
|
48 String user = request.getParameter("user");
|
|
|
49 String password = request.getParameter("password");
|
|
|
50 Long fileMetadataId = null;
|
|
|
51
|
|
|
52 try{
|
|
|
53 fileMetadataId = Long.parseLong(request.getParameter("fileMetadataId"));
|
|
|
54 }catch(Exception e){
|
|
|
55 e.printStackTrace();
|
|
|
56 }
|
|
|
57
|
|
|
58 try {
|
|
|
59
|
|
|
60 editStudyFilesService = (EditStudyFilesService) getCtx().lookup("java:comp/env/editStudyFiles");
|
|
|
61
|
|
|
62 } catch (NamingException e) {
|
|
|
63 e.printStackTrace();
|
|
|
64 FacesContext context = FacesContext.getCurrentInstance();
|
|
|
65 FacesMessage errMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), null);
|
|
|
66 context.addMessage(null, errMessage);
|
|
|
67 }
|
|
|
68
|
|
|
69 Study study = null;
|
|
|
70 try {
|
|
|
71 study = getStudy(studyGlobalId);
|
|
|
72 editStudyFilesService.setStudyVersion(study.getId());//ok
|
|
|
73 } catch (Exception e) {
|
|
|
74 logger.log(Level.WARNING, "Study no found. " + studyGlobalId);
|
|
|
75 error(jsonResponse, e);
|
|
|
76 }
|
|
|
77
|
|
|
78 try {
|
|
|
79
|
|
|
80 for(Object obj : editStudyFilesService.getCurrentFiles()){
|
|
|
81 StudyFileEditBean file = (StudyFileEditBean)obj;
|
|
|
82
|
|
|
83 if(file.getFileMetadata().getId().equals(fileMetadataId)){
|
|
|
84 file.setDeleteFlag(true);
|
|
|
85 }
|
|
|
86 }
|
|
|
87
|
|
|
88 AuthCredentials authCredentials = new AuthCredentials(user, password, null);
|
|
|
89 VDCUser vdcUser = swordAuth.auth(authCredentials);
|
|
|
90
|
|
|
91 editStudyFilesService.save(vdcUser.getId(), vdcUser.getId());
|
|
|
92
|
|
|
93 jsonResponse.put("status", "ok");
|
|
|
94
|
|
|
95
|
|
|
96 } catch (Exception e) {
|
|
|
97 logger.log(Level.SEVERE, e.getMessage());
|
|
|
98 error(jsonResponse, e);
|
|
|
99 }
|
|
|
100
|
|
|
101 java.io.PrintWriter out = response.getWriter();
|
|
|
102 out.print(jsonResponse);
|
|
|
103 out.flush();
|
|
|
104 }
|
|
|
105 }
|