public ArrayList<ServiceInfo> getServices(Properties properties) throws ApiException { ArrayList<ServiceInfo> services = new ArrayList<ServiceInfo>(); try { String defaultLangCode = this.getLangManager().getDefaultLang().getCode(); String langCode = properties.getProperty(SystemConstants.API_LANG_CODE_PARAMETER); String tagParamValue = properties.getProperty("tag"); String myentandoParamValue = properties.getProperty("myentando"); Boolean myentando = (null != myentandoParamValue && myentandoParamValue.trim().length() > 0) ? Boolean.valueOf(myentandoParamValue) : null; langCode = (null != langCode && null != this.getLangManager().getLang(langCode)) ? langCode : defaultLangCode; Map<String, ApiService> masterServices = this.getApiCatalogManager().getServices(tagParamValue, myentando); Iterator<ApiService> iter = masterServices.values().iterator(); while (iter.hasNext()) { ApiService service = (ApiService) iter.next(); if (service.isActive() && !service.isHidden() && this.checkServiceAuthorization(service, properties, false)) { ServiceInfo smallService = this.createServiceInfo(service, langCode, defaultLangCode); services.add(smallService); } } BeanComparator comparator = new BeanComparator("description"); Collections.sort(services, comparator); } catch (Throwable t) { ApsSystemUtils.logThrowable(t, this, "getServices", "Error extracting services"); throw new ApiException(IApiErrorCodes.SERVER_ERROR, "Internal error"); } return services; }
@Override public String edit() { try { String check = this.checkService(this.getServiceKey()); if (null != check) return check; ApiService apiService = this.getApiCatalogManager().getApiService(this.getServiceKey()); this.setApiParameters(apiService.getMaster().getParameters()); this.setApiMethodName(apiService.getMaster().getMethodName()); this.setApiParameterValues(apiService.getParameters()); this.setDescriptions(apiService.getDescription()); this.setPublicService(apiService.isPublicService()); this.setActiveService(apiService.isActive()); this.setMyEntandoService(apiService.isMyEntando()); this.setServiceKey(apiService.getKey()); if (null != apiService.getFreeParameters()) { List<String> freeParams = Arrays.asList(apiService.getFreeParameters()); this.setFreeParameters(freeParams); } this.setTag(apiService.getTag()); this.setStrutsAction(ApsAdminSystemConstants.EDIT); } catch (Throwable t) { ApsSystemUtils.logThrowable(t, this, "edit"); return FAILURE; } return SUCCESS; }
public void updateService(ApiService service) { Connection conn = null; PreparedStatement stat = null; try { conn = this.getConnection(); conn.setAutoCommit(false); stat = conn.prepareStatement(UPDATE_SERVICE); // SET resource = ? , description = ? , parameters = ? , tag = ? , freeparameters = ? , // isactive = ? , ispublic = ? WHERE servicekey = ? "; stat.setString(1, service.getMaster().getResourceName()); stat.setString(2, service.getDescription().toXml()); stat.setString(3, service.getParameters().toXml()); stat.setString(4, service.getTag()); if (null == service.getFreeParameters() || service.getFreeParameters().length == 0) { stat.setNull(5, Types.VARCHAR); } else { ServiceExtraConfigDOM dom = new ServiceExtraConfigDOM(); stat.setString(5, dom.extractXml(service.getFreeParameters())); } int isActive = (service.isActive()) ? 1 : 0; stat.setInt(6, isActive); int isPublic = (service.isPublicService()) ? 1 : 0; stat.setInt(7, isPublic); int isMyEntando = (service.isMyEntando()) ? 1 : 0; stat.setInt(8, isMyEntando); stat.setString(9, service.getKey()); stat.executeUpdate(); conn.commit(); } catch (Throwable t) { this.executeRollback(conn); processDaoException(t, "Error while updating a service", "updateService"); } finally { closeDaoResources(null, stat, conn); } }
public void updateService(ApiService service) throws ApsSystemException { try { if (null == service) { throw new ApsSystemException("Null api service to update"); } ApiService masterService = this.getMasterServices().get(service.getKey()); if (null == masterService) { throw new ApsSystemException("Api service '" + service.getKey() + "' does not exist"); } masterService.setActive(service.isActive()); masterService.setPublicService(service.isPublicService()); this.getApiCatalogDAO().updateService(masterService); } catch (Throwable t) { ApsSystemUtils.logThrowable( t, this, "updateApiServiceStatus", "Error updating api service '" + service.getKey() + "'"); throw new ApsSystemException("Error updating service '" + service.getKey() + "'", t); } }
public Object getService(Properties properties) throws ApiException { Object response = null; String key = (String) properties.get("key"); try { ApiService service = this.getApiCatalogManager().getApiService(key); if (null == service) { throw new ApiException( IApiErrorCodes.API_SERVICE_INVALID, "Service '" + key + "' does not exist"); } if (!service.isActive()) { throw new ApiException( IApiErrorCodes.API_SERVICE_ACTIVE_FALSE, "Service '" + key + "' is not active"); } this.checkServiceAuthorization(service, properties, true); Properties serviceParameters = new Properties(); serviceParameters.putAll(service.getParameters()); Iterator<Object> paramIter = properties.keySet().iterator(); List<String> reservedParameters = Arrays.asList(SystemConstants.API_RESERVED_PARAMETERS); while (paramIter.hasNext()) { Object paramName = paramIter.next(); String paramNameString = paramName.toString(); if (reservedParameters.contains(paramNameString) || service.isFreeParameter(paramNameString)) { serviceParameters.put(paramNameString, properties.get(paramName)); } } response = this.getResponseBuilder().createResponse(service.getMaster(), serviceParameters); } catch (ApiException e) { throw e; } catch (Throwable t) { ApsSystemUtils.logThrowable( t, this, "getService", "Error invocating service - key '" + key + "'"); throw new ApiException(IApiErrorCodes.SERVER_ERROR, "Internal error"); } return response; }