Last active
December 5, 2019 22:41
-
-
Save ganicus/9d0a55eb729adadac538 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum Router: URLRequestConvertible { | |
static let baseURLString = "http://dev.example.com" | |
static var OAuthToken: String? | |
case MapView(Int) | |
case PhotoInfo(Int, ImageSize) | |
case Comments(Int, Int) | |
var URLRequest: NSURLRequest { | |
let (path: String, parameters: [String: AnyObject]) = { | |
switch self { | |
case .MapView(let page): | |
let params = ["page": "\(page)"] | |
return ("/map", params) | |
case .PhotoInfo(let photoId, let imageSize): | |
var params = ["image_size": "\(imageSize.rawValue)"] | |
return ("/photos/\(photoId)", params) | |
case .Comments(let photoId, let commentsPage): | |
var params = [ "comments": "1", | |
"comments_page": "\(commentsPage)"] | |
return ("/photos/\(photoId)/comments", params) | |
} | |
}() | |
let URL = NSURL(string: Router.baseURLString)! | |
let mutableURLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent(path)) | |
let encoding = Alamofire.ParameterEncoding.URL | |
if let token = Router.OAuthToken { | |
mutableURLRequest.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") | |
} | |
return encoding.encode(mutableURLRequest, parameters: parameters).0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment