DeleteServlet.java
package sk.iway.iwcm.doc;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.editor.service.EditorService;
import sk.iway.iwcm.system.spring.SpringUrlMapping;
@WebServlet(name = "DelDoc",
urlPatterns = {"/admin/docdel.do"}
)
public class DeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Logger.println(DeleteServlet.class,"DeleteServlet CALLED - GET");
execute(request,response); //NOSONAR
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Logger.println(DeleteServlet.class,"DeleteServlet CALLED - POST");
execute(request,response); //NOSONAR
}
public void execute(
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try
{
String result = deleteDoc(request, -1);
if("logon_admin".equals(result)){
SpringUrlMapping.redirectToLogon(response);
return ;
}
else if("success".equals(result))
{
String redirect = Tools.sanitizeHttpHeaderParam(request.getParameter("returl"));
if(Tools.isNotEmpty(redirect))
{
response.sendRedirect(redirect);
return;
}
//request.getRequestDispatcher("success").forward(request,response);
response.sendRedirect("/admin/webpages/");
return;
}
else if("error_admin".equals(result)){
request.getRequestDispatcher("/admin/error.jsp").forward(request,response);
return ;
}
} catch (Exception e) {
sk.iway.iwcm.Logger.error(e);
}
response.sendRedirect("/admin/webpages/");
}
/**
* Zmaze / presunie web stranku do kosa
* @param request - moze byt NULL pre API volanie (vyzaduje ale korektne nastaveny RequestBean, neda sa teda volat z CRON ulohy)
* @param delDocId -> ak je rovne -1 tak sa pouzije docId z requestu, v opacnom pripade pouzije prislusnu hodnotu delDocId
* @return
* @throws IOException
* @throws ServletException
*/
public static String deleteDoc(HttpServletRequest request, int delDocId)
{
return deleteDoc(request, delDocId, true);
}
/**
* Zmaze / presunie web stranku do kosa
* @param request - moze byt NULL pre API volanie (vyzaduje ale korektne nastaveny RequestBean, neda sa teda volat z CRON ulohy)
* @param delDocId -> ak je rovne -1 tak sa pouzije docId z requestu, v opacnom pripade pouzije prislusnu hodnotu delDocId
* @param publishEvents - ak je true, su vyvolane udalosti (false potrebne ak napr. reagujeme na udalost a potrebujeme znova upravit adresar a nechceme aby doslo k zacykleniu)
* @return
* @throws IOException
* @throws ServletException
*/
public static String deleteDoc(HttpServletRequest request, int delDocId, boolean publishEvents)
{
DocDetails doc = DocDB.getInstance().getDoc(delDocId);
if (doc != null) {
EditorService editorService = Tools.getSpringBean("editorService", EditorService.class);
boolean deleted = editorService.deleteWebpage(doc, publishEvents);
if (deleted) return "success";
}
return "error_admin";
}
}