protected ServiceInfo createServiceInfo( ApiService service, String langCode, String defaultLangCode) { String description = service.getDescription().getProperty(langCode); if (null == description || description.trim().length() == 0) { description = service.getDescription().getProperty(defaultLangCode); } ServiceInfo smallService = new ServiceInfo(service.getKey(), description, service.getTag(), service.isMyEntando()); String[] freeParameters = service.getFreeParameters(); if (null != freeParameters && freeParameters.length > 0) { for (int i = 0; i < freeParameters.length; i++) { String freeParameter = freeParameters[i]; ApiMethodParameter apiParameter = service.getMaster().getParameter(freeParameter); if (null != apiParameter) { ServiceParameterInfo spi = new ServiceParameterInfo(apiParameter); ApsProperties serviceParameters = service.getParameters(); String defaultValue = (null != serviceParameters) ? serviceParameters.getProperty(freeParameter) : null; if (null != defaultValue) { spi.setDefaultValue(defaultValue); spi.setRequired(false); } smallService.addParameter(spi); } } } return smallService; }
@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 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; }