Skip to content

Commit ee7f447

Browse files
committed
Merge pull request #1187 from Edubits/swift-2.0
[Swift] Update generated code to Swift 2.0
2 parents a5fb689 + 0edbfef commit ee7f447

File tree

6 files changed

+31
-36
lines changed

6 files changed

+31
-36
lines changed

modules/swagger-codegen/src/main/resources/swift/APIs.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class APIBase {
1818
1919
if encoded! is [AnyObject] {
2020
var dictionary = [String:AnyObject]()
21-
for (index, item) in enumerate(encoded as! [AnyObject]) {
21+
for (index, item) in (encoded as! [AnyObject]).enumerate() {
2222
dictionary["\(index)"] = item
2323
}
2424
return dictionary
@@ -43,9 +43,9 @@ public class RequestBuilder<T> {
4343
self.isBody = isBody
4444
}
4545

46-
public func execute(completion: (response: Response<T>?, erorr: NSError?) -> Void) { }
46+
public func execute(completion: (response: Response<T>?, erorr: ErrorType?) -> Void) { }
4747

48-
public func addHeader(#name: String, value: String) -> Self {
48+
public func addHeader(name name: String, value: String) -> Self {
4949
if !value.isEmpty {
5050
headers[name] = value
5151
}

modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
2020
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody)
2121
}
2222

23-
override func execute(completion: (response: Response<T>?, erorr: NSError?) -> Void) {
23+
override func execute(completion: (response: Response<T>?, erorr: ErrorType?) -> Void) {
2424
let managerId = NSUUID().UUIDString
2525
// Create a new manager for each request to customize its request header
2626
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
@@ -30,7 +30,8 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
3030
3131
let encoding = isBody ? Alamofire.ParameterEncoding.JSON : Alamofire.ParameterEncoding.URL
3232
let xMethod = Alamofire.Method(rawValue: method)
33-
let fileKeys = parameters == nil ? [] : map(filter(parameters!) { $1.isKindOfClass(NSURL) }) { $0.0 }
33+
let fileKeys = parameters == nil ? [] : parameters!.filter { $1.isKindOfClass(NSURL) }
34+
.map { $0.0 }
3435

3536
if fileKeys.count > 0 {
3637
manager.upload(
@@ -69,23 +70,16 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
6970

7071
}
7172

72-
private func processRequest(request: Request, _ managerId: String, _ completion: (response: Response<T>?, erorr: NSError?) -> Void) {
73+
private func processRequest(request: Request, _ managerId: String, _ completion: (response: Response<T>?, erorr: ErrorType?) -> Void) {
7374
if let credential = self.credential {
7475
request.authenticate(usingCredential: credential)
7576
}
7677

77-
request.responseJSON(options: .AllowFragments) { (req, res, json, error) in
78+
request.responseJSON(options: .AllowFragments) { (req, res, result) in
7879
managerStore.removeValueForKey(managerId)
7980
80-
if let error = error {
81-
completion(response: nil, erorr: error)
82-
return
83-
}
84-
if res!.statusCode >= 400 {
85-
//TODO: Add error entity
86-
let userInfo: [NSObject : AnyObject] = (json != nil) ? ["data": json!] : [:]
87-
let error = NSError(domain: res!.URL!.URLString, code: res!.statusCode, userInfo: userInfo)
88-
completion(response: nil, erorr: error)
81+
if result.isFailure {
82+
completion(response: nil, erorr: result.error)
8983
return
9084
}
9185

@@ -94,7 +88,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
9488
completion(response: response, erorr: nil)
9589
return
9690
}
97-
if let json: AnyObject = json {
91+
if let json: AnyObject = result.value {
9892
let body = Decoders.decode(clazz: T.self, source: json)
9993
let response = Response(response: res!, body: body)
10094
completion(response: response, erorr: nil)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
github "Alamofire/Alamofire" >= 1.3
2-
github "mxcl/PromiseKit" >=1.5.3
1+
github "Alamofire/Alamofire" >= 2.0.0{{#usePromiseKit}}
2+
github "mxcl/PromiseKit" >=1.5.3{{/usePromiseKit}}

modules/swagger-codegen/src/main/resources/swift/Models.mustache

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,17 @@ private var once = dispatch_once_t()
3535
class Decoders {
3636
static private var decoders = Dictionary<String, ((AnyObject) -> AnyObject)>()
3737
38-
static func addDecoder<T>(#clazz: T.Type, decoder: ((AnyObject) -> T)) {
38+
static func addDecoder<T>(clazz clazz: T.Type, decoder: ((AnyObject) -> T)) {
3939
let key = "\(T.self)"
4040
decoders[key] = { decoder($0) as! AnyObject }
4141
}
4242

43-
static func decode<T>(#clazz: [T].Type, source: AnyObject) -> [T] {
43+
static func decode<T>(clazz clazz: [T].Type, source: AnyObject) -> [T] {
4444
let array = source as! [AnyObject]
4545
return array.map { Decoders.decode(clazz: T.self, source: $0) }
4646
}
4747

48-
static func decode<T, Key: Hashable>(#clazz: [Key:T].Type, source: AnyObject) -> [Key:T] {
48+
static func decode<T, Key: Hashable>(clazz clazz: [Key:T].Type, source: AnyObject) -> [Key:T] {
4949
let sourceDictinoary = source as! [Key: AnyObject]
5050
var dictionary = [Key:T]()
5151
for (key, value) in sourceDictinoary {
@@ -54,7 +54,7 @@ class Decoders {
5454
return dictionary
5555
}
5656

57-
static func decode<T>(#clazz: T.Type, source: AnyObject) -> T {
57+
static func decode<T>(clazz clazz: T.Type, source: AnyObject) -> T {
5858
initialize()
5959
if source is T {
6060
return source as! T
@@ -68,7 +68,7 @@ class Decoders {
6868
}
6969
}
7070

71-
static func decodeOptional<T>(#clazz: T.Type, source: AnyObject?) -> T? {
71+
static func decodeOptional<T>(clazz clazz: T.Type, source: AnyObject?) -> T? {
7272
if source is NSNull {
7373
return nil
7474
}
@@ -77,7 +77,7 @@ class Decoders {
7777
}
7878
}
7979

80-
static func decodeOptional<T>(#clazz: [T].Type, source: AnyObject?) -> [T]? {
80+
static func decodeOptional<T>(clazz clazz: [T].Type, source: AnyObject?) -> [T]? {
8181
if source is NSNull {
8282
return nil
8383
}
@@ -86,7 +86,7 @@ class Decoders {
8686
}
8787
}
8888

89-
static func decodeOptional<T, Key: Hashable>(#clazz: [Key:T].Type, source: AnyObject?) -> [Key:T]? {
89+
static func decodeOptional<T, Key: Hashable>(clazz clazz: [Key:T].Type, source: AnyObject?) -> [Key:T]? {
9090
if source is NSNull {
9191
return nil
9292
}
@@ -100,6 +100,7 @@ class Decoders {
100100
let formatters = [
101101
"yyyy-MM-dd",
102102
"yyyy-MM-dd'T'HH:mm:ssZZZZZ",
103+
"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ",
103104
"yyyy-MM-dd'T'HH:mm:ss'Z'"
104105
].map { (format: String) -> NSDateFormatter in
105106
let formatter = NSDateFormatter()
@@ -120,7 +121,7 @@ class Decoders {
120121
// Decoder for {{{classname}}}
121122
Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in
122123
let sourceDictionary = source as! [NSObject:AnyObject]
123-
var instance = {{classname}}(){{#vars}}{{#isEnum}}
124+
let instance = {{classname}}(){{#vars}}{{#isEnum}}
124125
instance.{{name}} = (sourceDictionary["{{name}}"] as? String).map { {{classname}}.{{datatypeWithEnum}}(rawValue: $0)! }{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}} {{/isEnum}}{{^isEnum}}
125126
instance.{{name}} = Decoders.decode{{^unwrapRequired}}Optional{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}Optional{{/required}}{{/unwrapRequired}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{name}}"]{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}}){{/isEnum}}{{/vars}}
126127
return instance

modules/swagger-codegen/src/main/resources/swift/Podspec.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
1414
s.description = '{{podDescription}}'{{/podDescription}}{{#podScreenshots}}
1515
s.screenshots = {{& podScreenshots}}{{/podScreenshots}}{{#podDocumentationURL}}
1616
s.documentation_url = '{{podDocumentationURL}}'{{/podDocumentationURL}}
17-
s.source_files = '{{projectName}}/Classes/Swaggers/**/*.swift'
18-
s.dependency 'PromiseKit', '~> 2.1'
19-
s.dependency 'Alamofire', '~> 1.3'
17+
s.source_files = '{{projectName}}/Classes/Swaggers/**/*.swift'{{#usePromiseKit}}
18+
s.dependency 'PromiseKit', '~> 2.1'{{/usePromiseKit}}
19+
s.dependency 'Alamofire', '~> 2.0.0'
2020
end

modules/swagger-codegen/src/main/resources/swift/api.mustache

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// https://github.com/swagger-api/swagger-codegen
66
//
77

8-
import Alamofire
9-
import PromiseKit
8+
import Alamofire{{#usePromiseKit}}
9+
import PromiseKit{{/usePromiseKit}}
1010

1111
extension {{projectName}}API {
1212
{{#description}}
@@ -28,11 +28,11 @@ extension {{projectName}}API {
2828
- examples: {{{examples}}}{{/examples}}{{#externalDocs}}
2929
- externalDocs: {{externalDocs}}{{/externalDocs}}{{#hasParams}}
3030
{{/hasParams}}{{#allParams}}
31-
:param: {{paramName}} ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}}
31+
- parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}}
3232

33-
:returns: Promise<Response<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>> {{description}}
33+
- returns: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}}
3434
*/
35-
public class func {{operationId}}({{#allParams}}{{^secondaryParam}}#{{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {
35+
public class func {{operationId}}({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {
3636
{{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}}
3737
path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}}
3838
let URLString = {{projectName}}API.basePath + path
@@ -47,7 +47,7 @@ extension {{projectName}}API {
4747

4848
let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder()
4949

50-
return requestBuilder(method: "{{httpMethod}}", URLString: URLString, parameters: parameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}})
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}})
5151
}
5252
{{/operation}}
5353
}

0 commit comments

Comments
 (0)