isc.defineClass("GeRestDataSource", "RestDataSource"); isc.GeRestDataSource.addProperties({ dataFormat: "json", sendMetaData: true, fieldsOnly: false, // Additionally supply meta data to the transformed request transformRequest : function (dsRequest) { var transformedRequest = this.Super("transformRequest", arguments); if (this.sendMetaData) { if (this.fieldsOnly) { var fieldNames = []; for (var field in this.fields) { fieldNames.push(field); } if (fieldNames.length > 0) { transformedRequest[this.metaDataPrefix + "fieldsOnly"] = this.fieldsOnly; transformedRequest[this.metaDataPrefix + "fields"] = fieldNames; } } } return transformedRequest; }, // Additionally supply warnings to the transformed response transformResponse : function (dsResponse, dsRequest, data) { var transformedResponse = this.Super("transformResponse", arguments); transformedResponse.warnings = []; var warnings; if (this.dataFormat == "json") { var rawResponse = data.response || {}; warnings = rawResponse.warnings; } else { warnings = isc.xml.toJS(data.selectNodes("//warnings")); } if (isc.isAn.Array(warnings)) { for (var i = 0; i < warnings.length; i++) { transformedResponse.warnings[i] = warnings[i]; } } return transformedResponse; } });