ApiChange.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.web.ctrlstat.servlet.apc.api;

  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import javax.servlet.http.HttpSession;

  24. import org.apache.struts.action.Action;
  25. import org.apache.struts.action.ActionForm;
  26. import org.apache.struts.action.ActionForward;
  27. import org.apache.struts.action.ActionMapping;
  28. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  29. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  30. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  31. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  32. import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCore;
  33. import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCostanti;
  34. import org.openspcoop2.web.lib.mvc.ForwardParams;
  35. import org.openspcoop2.web.lib.mvc.GeneralData;
  36. import org.openspcoop2.web.lib.mvc.PageData;
  37. import org.openspcoop2.web.lib.mvc.ServletUtils;
  38. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  39. /**
  40.  * ApiChange
  41.  *
  42.  * @author Giuliano Pintori (pintori@link.it)
  43.  * @author $Author$
  44.  * @version $Rev$, $Date$
  45.  */
  46. public class ApiChange extends Action {

  47.     @Override
  48.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

  49.         HttpSession session = request.getSession(true);

  50.         // Inizializzo PageData
  51.         PageData pd = new PageData();

  52.         GeneralHelper generalHelper = new GeneralHelper(session);

  53.         // Inizializzo GeneralData
  54.         GeneralData gd = generalHelper.initGeneralData(request);

  55.         // Parametri relativi al tipo operazione
  56.         TipoOperazione tipoOp = TipoOperazione.CHANGE;

  57.         try {
  58.             ApiHelper apiHelper = new ApiHelper(request, pd, session);
  59.             String id = apiHelper.getParameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID);
  60.             long idInt  = Long.parseLong(id);
  61.            
  62.             AccordiServizioParteComuneCore apcCore = new AccordiServizioParteComuneCore();
  63.             AccordoServizioParteComune as = apcCore.getAccordoServizioFull(idInt);
  64.            
  65.             String resetElementoCacheS = apiHelper.getParameter(CostantiControlStation.PARAMETRO_ELIMINA_ELEMENTO_DALLA_CACHE);
  66.             boolean resetElementoCache = ServletUtils.isCheckBoxEnabled(resetElementoCacheS);
  67.            
  68.             boolean resetElementoCacheDettaglio = false;
  69.             String postBackElementName = apiHelper.getPostBackElementName();
  70.             if(postBackElementName != null && postBackElementName.equals(CostantiControlStation.PARAMETRO_ELIMINA_ELEMENTO_DALLA_CACHE)) {
  71.                 resetElementoCacheDettaglio = true;
  72.             }
  73.            
  74.             if(resetElementoCache || resetElementoCacheDettaglio) {
  75.                 // reset elemento dalla cache
  76.                 return apiHelper.prepareApiResetCache(mapping, gd, tipoOp, as);
  77.             }
  78.            
  79.             apiHelper.prepareApiChange(tipoOp, as);
  80.            
  81.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  82.            
  83.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, ApiCostanti.OBJECT_NAME_APC_API, ForwardParams.CHANGE());
  84.         } catch (Exception e) {
  85.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  86.                     ApiCostanti.OBJECT_NAME_APC_API, ForwardParams.CHANGE());
  87.         }  
  88.  
  89.     }
  90. }