|
8 | 8 | import Alamofire{{#usePromiseKit}}
|
9 | 9 | import PromiseKit{{/usePromiseKit}}
|
10 | 10 |
|
| 11 | +{{#swiftUseApiNamespace}} |
11 | 12 | extension {{projectName}}API {
|
12 |
| - {{#description}} |
13 |
| - /** {{description}} */{{/description}} |
14 |
| - public class {{classname}}: APIBase { |
15 |
| - {{#operation}} |
16 |
| - /** |
17 |
| - {{#summary}} |
18 |
| - {{{summary}}} |
19 |
| - {{/summary}} |
20 |
| - - {{httpMethod}} {{path}}{{#notes}} |
21 |
| - - {{{notes}}}{{/notes}}{{#subresourceOperation}} |
22 |
| - - subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}} |
23 |
| - - defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}} |
24 |
| - - {{#isBasic}}BASIC{{/isBasic}}{{#isOAuth}}OAuth{{/isOAuth}}{{#isApiKey}}API Key{{/isApiKey}}: |
25 |
| - - type: {{type}}{{#keyParamName}} {{keyParamName}} {{#isKeyInQuery}}(QUERY){{/isKeyInQuery}}{{#isKeyInHeaer}}(HEADER){{/isKeyInHeaer}}{{/keyParamName}} |
26 |
| - - name: {{name}}{{/authMethods}}{{#responseHeaders}} |
27 |
| - - responseHeaders: {{responseHeaders}}{{/responseHeaders}}{{#examples}} |
28 |
| - - examples: {{{examples}}}{{/examples}}{{#externalDocs}} |
29 |
| - - externalDocs: {{externalDocs}}{{/externalDocs}}{{#hasParams}} |
30 |
| - {{/hasParams}}{{#allParams}} |
31 |
| - - parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} |
32 |
| - |
33 |
| - - returns: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}} |
34 |
| - */ |
35 |
| - public class func {{operationId}}({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> { |
36 |
| - {{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}} |
37 |
| - path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}} |
38 |
| - let URLString = {{projectName}}API.basePath + path |
39 |
| - {{#bodyParam}} |
40 |
| - let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}} |
41 |
| - let nillableParameters: [String:AnyObject?] = {{^queryParams}}{{^formParams}}[:]{{/formParams}}{{#formParams}}{{^secondaryParam}}[{{/secondaryParam}} |
42 |
| - "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} |
43 |
| - ]{{/hasMore}}{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}} |
44 |
| - "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} |
45 |
| - ]{{/hasMore}}{{/queryParams}} |
46 |
| - let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}} |
47 |
| - |
48 |
| - let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() |
49 |
| - |
50 |
| - return requestBuilder.init(method: "{{httpMethod}}", URLString: URLString, parameters: parameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}}) |
| 13 | +{{/swiftUseApiNamespace}} |
| 14 | + |
| 15 | +{{#description}} |
| 16 | +/** {{description}} */{{/description}} |
| 17 | +public class {{classname}}: APIBase { |
| 18 | +{{#operation}} |
| 19 | + /** |
| 20 | + {{#summary}} |
| 21 | + {{{summary}}} |
| 22 | + {{/summary}}{{#allParams}} |
| 23 | + - parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} |
| 24 | + - parameter completion: completion handler to receive the data and the error objects |
| 25 | + */ |
| 26 | + public class func {{operationId}}({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}completion: (({{#returnType}}data: {{{returnType}}}?, {{/returnType}}error: ErrorType?) -> Void)) { |
| 27 | + {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}).execute { (response, error) -> Void in |
| 28 | + completion({{#returnType}}data: response?.body, {{/returnType}}error: error); |
| 29 | + } |
| 30 | + } |
| 31 | + |
| 32 | +{{#usePromiseKit}} |
| 33 | + /** |
| 34 | + {{#summary}} |
| 35 | + {{{summary}}} |
| 36 | + {{/summary}}{{#allParams}} |
| 37 | + - parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} |
| 38 | + - returns: Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> |
| 39 | + */ |
| 40 | + public class func {{operationId}}({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> { |
| 41 | + let deferred = Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.pendingPromise() |
| 42 | + {{operationId}}({{#allParams}}{{paramName}}: {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#returnType}}data, {{/returnType}}error in |
| 43 | + if let error = error { |
| 44 | + deferred.reject(error) |
| 45 | + } else { |
| 46 | + deferred.fulfill({{#returnType}}data!{{/returnType}}) |
| 47 | + } |
51 | 48 | }
|
52 |
| - {{/operation}} |
| 49 | + return deferred.promise |
53 | 50 | }
|
| 51 | +{{/usePromiseKit}} |
| 52 | + |
| 53 | + /** |
| 54 | + {{#summary}} |
| 55 | + {{{summary}}} |
| 56 | + {{/summary}} |
| 57 | + - {{httpMethod}} {{path}}{{#notes}} |
| 58 | + - {{{notes}}}{{/notes}}{{#subresourceOperation}} |
| 59 | + - subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}} |
| 60 | + - defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}} |
| 61 | + - {{#isBasic}}BASIC{{/isBasic}}{{#isOAuth}}OAuth{{/isOAuth}}{{#isApiKey}}API Key{{/isApiKey}}: |
| 62 | + - type: {{type}}{{#keyParamName}} {{keyParamName}} {{#isKeyInQuery}}(QUERY){{/isKeyInQuery}}{{#isKeyInHeaer}}(HEADER){{/isKeyInHeaer}}{{/keyParamName}} |
| 63 | + - name: {{name}}{{/authMethods}}{{#responseHeaders}} |
| 64 | + - responseHeaders: {{responseHeaders}}{{/responseHeaders}}{{#examples}} |
| 65 | + - examples: {{{examples}}}{{/examples}}{{#externalDocs}} |
| 66 | + - externalDocs: {{externalDocs}}{{/externalDocs}}{{#hasParams}} |
| 67 | + {{/hasParams}}{{#allParams}} |
| 68 | + - parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} |
| 69 | + |
| 70 | + - returns: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}} |
| 71 | + */ |
| 72 | + public class func {{operationId}}WithRequestBuilder({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> { |
| 73 | + {{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}} |
| 74 | + path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}} |
| 75 | + let URLString = {{projectName}}API.basePath + path |
| 76 | + {{#bodyParam}} |
| 77 | + let parameters = {{paramName}}{{^required}}?{{/required}}.encodeToJSON() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}} |
| 78 | + let nillableParameters: [String:AnyObject?] = {{^queryParams}}{{^formParams}}[:]{{/formParams}}{{#formParams}}{{^secondaryParam}}[{{/secondaryParam}} |
| 79 | + "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} |
| 80 | + ]{{/hasMore}}{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}} |
| 81 | + "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} |
| 82 | + ]{{/hasMore}}{{/queryParams}} |
| 83 | + let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}} |
| 84 | + |
| 85 | + let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() |
| 86 | + |
| 87 | + return requestBuilder.init(method: "{{httpMethod}}", URLString: URLString, parameters: parameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}}) |
| 88 | + } |
| 89 | + |
| 90 | +{{/operation}} |
| 91 | +} |
| 92 | +{{#swiftUseApiNamespace}} |
54 | 93 | }
|
| 94 | +{{/swiftUseApiNamespace}} |
55 | 95 | {{/operations}}
|
0 commit comments