Skip to content

merge from develop 2.0 for release #851

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 35 commits into from
Jun 9, 2015
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
0dd8670
rollback python template
wing328 Jun 9, 2015
d5cbbae
rollback ruby swagger template
wing328 Jun 9, 2015
5f6622c
rollback ruby template
wing328 Jun 9, 2015
2e12ac5
rollback perl template
wing328 Jun 9, 2015
50ae965
rollback php template
wing328 Jun 9, 2015
263b408
rollback python3 template
wing328 Jun 9, 2015
6253bbf
roll back qt5cpp template
wing328 Jun 9, 2015
eee8685
rollback flash template
wing328 Jun 9, 2015
eede02a
rollback nodejs and htmldocs template
wing328 Jun 9, 2015
b1f5c03
rollback objc templates
wing328 Jun 9, 2015
7d6fdf9
rollback retroit template
wing328 Jun 9, 2015
b636d2a
rollback scala template
wing328 Jun 9, 2015
f2ee63d
rollback scalatra template
wing328 Jun 9, 2015
d8060f4
rollback swagger-static template
wing328 Jun 9, 2015
410144e
rollback swift template
wing328 Jun 9, 2015
6617af5
rollback tizen template
wing328 Jun 9, 2015
6efef51
rollback validator template
wing328 Jun 9, 2015
a8f6044
rollback akka-scala template
wing328 Jun 9, 2015
ab9daaa
rollback android template
wing328 Jun 9, 2015
f610958
rollback asyncscala template
wing328 Jun 9, 2015
7b6480f
rollback codegen template
wing328 Jun 9, 2015
46c5b77
rollback csharp template
wing328 Jun 9, 2015
900f396
rollback grovvy template
wing328 Jun 9, 2015
180d48e
rollback java template
wing328 Jun 9, 2015
29c41ad
rollback java jxrs template
wing328 Jun 9, 2015
fc38b9b
rollback akkascala to another commit (637ee77d66dbcd2a94a22941754158d…
wing328 Jun 9, 2015
d155ddd
rollback java spring mvc template
wing328 Jun 9, 2015
7fd996b
update php sample
wing328 Jun 9, 2015
a593271
rollback flash apiinvoker based on 8ee8eddcff26d72a89538bcdac39f2f730…
wing328 Jun 9, 2015
680078d
fix csharp refer to apiinvoker
wing328 Jun 9, 2015
3b3738e
Merge pull request #847 from wing328/fix_indentation
fehguy Jun 9, 2015
207776c
udpate podfile
wing328 Jun 9, 2015
33c2b1b
Merge pull request #849 from wing328/fix_podfile
fehguy Jun 9, 2015
3d2f09a
updated versions
fehguy Jun 9, 2015
570383d
updated name, disabled test
fehguy Jun 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
rollback swift template
  • Loading branch information
wing328 committed Jun 9, 2015
commit 410144ea1cd4fd066955b91f1ee4bc25b9c440ed
24 changes: 12 additions & 12 deletions modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
//

class APIHelper {
static func rejectNil(source: [String:AnyObject?]) -> [String:AnyObject]? {
var destination = [String:AnyObject]()
for (key, nillableValue) in source {
if let value: AnyObject = nillableValue {
destination[key] = value
}
}
static func rejectNil(source: [String:AnyObject?]) -> [String:AnyObject]? {
var destination = [String:AnyObject]()
for (key, nillableValue) in source {
if let value: AnyObject = nillableValue {
destination[key] = value
}
}

if destination.isEmpty {
return nil
}
return destination
}
if destination.isEmpty {
return nil
}
return destination
}
}
71 changes: 33 additions & 38 deletions modules/swagger-codegen/src/main/resources/swift/APIs.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -8,64 +8,59 @@ import Foundation
import PromiseKit

class {{projectName}}API {
static let basePath = "{{^basePathOverride}}{{basePath}}{{/basePathOverride}}{{basePathOverride}}"
static var credential: NSURLCredential?
static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
static let basePath = "{{^basePathOverride}}{{basePath}}{{/basePathOverride}}{{basePathOverride}}"
static var credential: NSURLCredential?
static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
}

class APIBase {
func toParameters(encodable: JSONEncodable?) -> [String: AnyObject]? {
let encoded: AnyObject? = encodable?.encode()
func toParameters(encodable: JSONEncodable?) -> [String: AnyObject]? {
let encoded: AnyObject? = encodable?.encode()

if encoded! is [AnyObject] {
var dictionary = [String:AnyObject]()
for (index, item) in enumerate(encoded as! [AnyObject]) {
dictionary["\(index)"] = item
}
return dictionary
} else {
return encoded as? [String:AnyObject]
}
}
if encoded! is [AnyObject] {
var dictionary = [String:AnyObject]()
for (index, item) in enumerate(encoded as! [AnyObject]) {
dictionary["\(index)"] = item
}
return dictionary
} else {
return encoded as? [String:AnyObject]
}
}
}

class RequestBuilder
<T> {
class RequestBuilder<T> {
var credential: NSURLCredential?
var headers: [String:String] = [:]
let parameters: [String:AnyObject]?
let isBody: Bool
let method: String
let URLString: String

required init(method: String, URLString: String, parameters: [String:AnyObject]?, isBody: Bool) {
self.method = method
self.URLString = URLString
self.parameters = parameters
self.isBody = isBody
self.method = method
self.URLString = URLString
self.parameters = parameters
self.isBody = isBody
}

func execute() -> Promise<Response<T>> { fatalError("Not implemented") }

func execute() -> Promise
<Response
<T>> { fatalError("Not implemented") }

func addHeader(#name: String, value: String) -> Self {
func addHeader(#name: String, value: String) -> Self {
if !value.isEmpty {
headers[name] = value
headers[name] = value
}
return self
}

func addCredential() -> Self {
}
func addCredential() -> Self {
self.credential = {{projectName}}API.credential
return self
}
}
}
}

protocol RequestBuilderFactory {
func getBuilder
<T>() -> RequestBuilder
<T>.Type
}
protocol RequestBuilderFactory {
func getBuilder<T>() -> RequestBuilder<T>.Type
}


Original file line number Diff line number Diff line change
Expand Up @@ -8,83 +8,72 @@ import Alamofire
import PromiseKit

class AlamofireRequestBuilderFactory: RequestBuilderFactory {
func getBuilder
<T>() -> RequestBuilder
<T>.Type {
return AlamofireRequestBuilder
<T>.self
}
}
func getBuilder<T>() -> RequestBuilder<T>.Type {
return AlamofireRequestBuilder<T>.self
}
}

// Store manager to retain its reference
private var managerStore: [String: Alamofire.Manager] = [:]
// Store manager to retain its reference
private var managerStore: [String: Alamofire.Manager] = [:]

class AlamofireRequestBuilder
<T>: RequestBuilder
<T> {
required init(method: String, URLString: String, parameters: [String : AnyObject]?, isBody: Bool) {
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody)
}
class AlamofireRequestBuilder<T>: RequestBuilder<T> {
required init(method: String, URLString: String, parameters: [String : AnyObject]?, isBody: Bool) {
super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody)
}

override func execute() -> Promise
<Response
<T>> {
let managerId = NSUUID().UUIDString
// Create a new manager for each request to customize its request header
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPAdditionalHeaders = buildHeaders()
let manager = Alamofire.Manager(configuration: configuration)
managerStore[managerId] = manager
override func execute() -> Promise<Response<T>> {
let managerId = NSUUID().UUIDString
// Create a new manager for each request to customize its request header
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPAdditionalHeaders = buildHeaders()
let manager = Alamofire.Manager(configuration: configuration)
managerStore[managerId] = manager

let encoding = isBody ? Alamofire.ParameterEncoding.JSON : Alamofire.ParameterEncoding.URL
let request = manager.request(Alamofire.Method(rawValue: method)!, URLString, parameters:
parameters, encoding: encoding)
if let credential = self.credential {
request.authenticate(usingCredential: credential)
}
let encoding = isBody ? Alamofire.ParameterEncoding.JSON : Alamofire.ParameterEncoding.URL
let request = manager.request(Alamofire.Method(rawValue: method)!, URLString, parameters: parameters, encoding: encoding)
if let credential = self.credential {
request.authenticate(usingCredential: credential)
}

let defer = Promise
<Response
<T>>.defer()
request.responseJSON(options: .AllowFragments) { (req, res, json, error) in
managerStore.removeValueForKey(managerId)
let defer = Promise<Response<T>>.defer()
request.responseJSON(options: .AllowFragments) { (req, res, json, error) in
managerStore.removeValueForKey(managerId)

if let error = error {
defer.reject(error)
return
}
if res!.statusCode >= 400 {
//TODO: Add error entity
let error = NSError(domain: res!.URL!.URLString, code: res!.statusCode, userInfo: [:])
defer.reject(error)
return
}

if () is T {
let response = Response(response: res!, body: () as! T)
defer.fulfill(response)
return
}
if let json: AnyObject = json {
let body = Decoders.decode(clazz: T.self, source: json)
let response = Response(response: res!, body: body)
defer.fulfill(response)
return
}
if let error = error {
defer.reject(error)
return
}
if res!.statusCode >= 400 {
//TODO: Add error entity
let error = NSError(domain: res!.URL!.URLString, code: res!.statusCode, userInfo: [:])
defer.reject(error)
return
}

defer.reject(NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable
code"]))
}
return defer.promise
}
if () is T {
let response = Response(response: res!, body: () as! T)
defer.fulfill(response)
return
}
if let json: AnyObject = json {
let body = Decoders.decode(clazz: T.self, source: json)
let response = Response(response: res!, body: body)
defer.fulfill(response)
return
}

defer.reject(NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable code"]))
}
return defer.promise
}

private func buildHeaders() -> [String: AnyObject] {
var httpHeaders = Manager.defaultHTTPHeaders
for (key, value) in self.headers {
httpHeaders[key] = value
}
return httpHeaders
}
}
private func buildHeaders() -> [String: AnyObject] {
var httpHeaders = Manager.defaultHTTPHeaders
for (key, value) in self.headers {
httpHeaders[key] = value
}
return httpHeaders
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,45 @@ import Alamofire
import PromiseKit

extension Bool: JSONEncodable {
func encode() -> AnyObject { return self }
func encode() -> AnyObject { return self }
}

extension Float: JSONEncodable {
func encode() -> AnyObject { return self }
func encode() -> AnyObject { return self }
}

extension Int: JSONEncodable {
func encode() -> AnyObject { return self }
func encode() -> AnyObject { return self }
}

extension Double: JSONEncodable {
func encode() -> AnyObject { return self }
func encode() -> AnyObject { return self }
}

extension String: JSONEncodable {
func encode() -> AnyObject { return self }
func encode() -> AnyObject { return self }
}

private func encodeIfPossible
<T>(object: T) -> AnyObject {
private func encodeIfPossible<T>(object: T) -> AnyObject {
if object is JSONEncodable {
return (object as! JSONEncodable).encode()
return (object as! JSONEncodable).encode()
} else {
return object as! AnyObject
}
return object as! AnyObject
}
}

extension Array: JSONEncodable {
extension Array: JSONEncodable {
func encode() -> AnyObject {
return self.map(encodeIfPossible)
}
return self.map(encodeIfPossible)
}
}

extension Dictionary: JSONEncodable {
extension Dictionary: JSONEncodable {
func encode() -> AnyObject {
var dictionary = [NSObject:AnyObject]()
for (key, value) in self {
dictionary[key as! NSObject] = encodeIfPossible(value)
}
return dictionary
}
var dictionary = [NSObject:AnyObject]()
for (key, value) in self {
dictionary[key as! NSObject] = encodeIfPossible(value)
}
return dictionary
}
}
Loading