/** * {{&summary}} * @method * @name {{&className}}#{{&methodName}} {{#parameters}} {{^isSingleton}} * @param {{=<% %>=}}{<%&type%>}<%={{ }}=%> {{&camelCaseName}} - {{&description}}{{/isSingleton}} {{/parameters}} * */ {{&className}}.prototype.{{&methodName}} = function(parameters){ if(angular.isUndefined(parameters)) { parameters = {}; } var deferred = {{#isNode}}Q{{/isNode}}{{^isNode}}$q{{/isNode}}.defer(); var path = '{{&path}}'; var body; var queryParameters = {}; var headers = { {{#headers}} '{{&name}}': {{&value}}, {{/headers}} }; var form = {}; {{#isSecure}} if (this.token.isQuery) { queryParameters[this.token.headerOrQueryName] = this.token.value; } else if (this.token.headerOrQueryName) { headers[this.token.headerOrQueryName] = this.token.value; } else { headers['Authorization'] = 'Bearer ' + this.token.value; } {{/isSecure}} {{#parameters}} {{#isQueryParameter}} {{#isSingleton}} queryParameters['{{&name}}'] = '{{&singleton}}'; {{/isSingleton}} {{^isSingleton}} {{#isPatternType}} Object.keys(parameters).forEach(function(parameterName) { if(new RegExp('{{&pattern}}').test(parameterName)){ queryParameters[parameterName] = parameters[parameterName]; } }); {{/isPatternType}} {{^isPatternType}} if(angular.isDefined(parameters['{{&camelCaseName}}'])) { queryParameters['{{&name}}'] = parameters['{{&camelCaseName}}']; } {{/isPatternType}} {{/isSingleton}} {{/isQueryParameter}} {{#isPathParameter}} path = path.replace('{{=<% %>=}}{<%&name%>}<%={{ }}=%>', parameters['{{&camelCaseName}}']); {{/isPathParameter}} {{#isHeaderParameter}} {{#isSingleton}} headers['{{&name}}'] = '{{&singleton}}'; {{/isSingleton}} {{^isSingleton}} if(angular.isDefined(parameters['{{&camelCaseName}}'])) { headers['{{&name}}'] = parameters['{{&camelCaseName}}']; } {{/isSingleton}} {{/isHeaderParameter}} {{#isBodyParameter}} if(angular.isDefined(parameters['{{&camelCaseName}}'])) { body = parameters['{{&camelCaseName}}']; } {{/isBodyParameter}} {{#isFormParameter}} {{#isSingleton}} form['{{&name}}'] = '{{&singleton}}'; {{/isSingleton}} {{^isSingleton}} if(angular.isDefined(parameters['{{&camelCaseName}}'])) { form['{{&name}}'] = parameters['{{&camelCaseName}}']; } {{/isSingleton}} {{/isFormParameter}} {{#required}} if(angular.isUndefined(parameters['{{&camelCaseName}}'])) { deferred.reject(new Error('Missing required {{¶mType}} parameter: {{&camelCaseName}}')); return deferred.promise; } {{/required}} {{/parameters}} if(parameters.$queryParameters) { Object.keys(parameters.$queryParameters) .forEach(function(parameterName){ var parameter = parameters.$queryParameters[parameterName]; queryParameters[parameterName] = parameter; }); } {{> request}} return deferred.promise; };