forked from loafle/openapi-generator-original
Do refactor and add extension methods
This commit is contained in:
parent
23d714f2f1
commit
5dfa753f5c
@ -57,7 +57,7 @@ public class SwiftGenerator extends DefaultCodegen implements CodegenConfig {
|
||||
|
||||
sourceFolder = appName + "/" + sourceFolder;
|
||||
|
||||
supportingFiles.add(new SupportingFile("Cartfile.mustache", appName, "Cartfile"));
|
||||
supportingFiles.add(new SupportingFile("Cartfile.mustache", "", "Cartfile"));
|
||||
supportingFiles.add(new SupportingFile("APIHelper.mustache", sourceFolder, "APIHelper.swift"));
|
||||
supportingFiles.add(new SupportingFile("AlamofireImplementations.mustache", sourceFolder, "AlamofireImplementations.swift"));
|
||||
supportingFiles.add(new SupportingFile("Extensions.mustache", sourceFolder, "Extensions.swift"));
|
||||
|
@ -21,9 +21,9 @@ class RequestBuilder<T: JSONDecodable> {
|
||||
let parameters: [String:AnyObject]?
|
||||
let isBody: Bool
|
||||
let method: String
|
||||
let URLString: URLStringConvertible
|
||||
let URLString: String
|
||||
|
||||
required init(method: String, URLString: URLStringConvertible, parameters: [String:AnyObject]?, isBody: Bool) {
|
||||
required init(method: String, URLString: String, parameters: [String:AnyObject]?, isBody: Bool) {
|
||||
self.method = method
|
||||
self.URLString = URLString
|
||||
self.parameters = parameters
|
||||
@ -40,7 +40,7 @@ class RequestBuilder<T: JSONDecodable> {
|
||||
}
|
||||
|
||||
func addCredential() -> Self {
|
||||
self.credential = OneteamAPI.credential
|
||||
self.credential = {{projectName}}API.credential
|
||||
return self
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ class AlamofireRequestBuilderFactory: RequestBuilderFactory {
|
||||
}
|
||||
|
||||
class AlamofireRequestBuilder<T: JSONDecodable>: RequestBuilder<T> {
|
||||
required init(method: String, URLString: URLStringConvertible, parameters: [String : AnyObject]?, isBody: Bool) {
|
||||
required init(method: String, URLString: String, parameters: [String : AnyObject]?, isBody: Bool) {
|
||||
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody)
|
||||
}
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
github "Alamofire/Alamofire" >= 1.2
|
||||
github "mxcl/PromiseKit"
|
||||
github "mxcl/PromiseKit" >=1.5.3
|
||||
github "SwiftyJSON/SwiftyJSON" >= 2.2
|
||||
|
@ -43,6 +43,12 @@ extension Request {
|
||||
}
|
||||
}
|
||||
|
||||
extension String: JSONDecodable {
|
||||
static func decode(source: AnyObject) -> String? {
|
||||
return source.description
|
||||
}
|
||||
}
|
||||
|
||||
extension Array: JSONEncodable {
|
||||
func encode() -> AnyObject {
|
||||
if Element.self is JSONEncodable {
|
||||
@ -53,6 +59,33 @@ extension Array: JSONEncodable {
|
||||
}
|
||||
}
|
||||
|
||||
extension Dictionary: JSONEncodable, JSONDecodable {
|
||||
static func decode(source: AnyObject) -> [Key:Value]? {
|
||||
return nil
|
||||
}
|
||||
|
||||
func encode() -> AnyObject {
|
||||
var dictionary = [NSObject:AnyObject]()
|
||||
for (key, value) in self {
|
||||
let keyObject: NSObject
|
||||
if Key.self is JSONEncodable {
|
||||
keyObject = (key as! JSONEncodable).encode() as! NSObject
|
||||
} else {
|
||||
keyObject = key as! NSObject
|
||||
}
|
||||
let valueObject: AnyObject
|
||||
if Value.self is JSONEncodable {
|
||||
valueObject = (value as! JSONEncodable).encode()
|
||||
} else {
|
||||
valueObject = value as! NSObject
|
||||
}
|
||||
|
||||
dictionary[keyObject] = valueObject
|
||||
}
|
||||
return dictionary
|
||||
}
|
||||
}
|
||||
|
||||
extension JSON {
|
||||
func decode() -> Bool? {
|
||||
return self.bool
|
||||
|
@ -35,14 +35,15 @@ extension {{projectName}}API {
|
||||
path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}}
|
||||
let url = {{projectName}}API.basePath + path
|
||||
{{#bodyParam}}
|
||||
let parameters = {{paramName}}.encode() as! [String:AnyObject]{{/bodyParam}}{{^bodyParam}}
|
||||
let parameters = {{paramName}}{{^required}}?{{/required}}.encode() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}}
|
||||
let nillableParameters: [String:AnyObject?] = {{^queryParams}}[:]{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}}
|
||||
"{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}}
|
||||
]{{/hasMore}}{{/queryParams}}
|
||||
let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}}
|
||||
|
||||
return {{projectName}}API.requestBuilderFactory.getBuilder()
|
||||
(method: "{{httpMethod}}", URLString: url, parameters: parameters, isBody: {{^queryParams}}true{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}})
|
||||
let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Empty{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder()
|
||||
|
||||
return requestBuilder(method: "{{httpMethod}}", URLString: url, parameters: parameters, isBody: {{^queryParams}}true{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}})
|
||||
}
|
||||
{{/operation}}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user