Skip to content

Instantly share code, notes, and snippets.

@ganicus
Last active December 5, 2019 22:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ganicus/9d0a55eb729adadac538 to your computer and use it in GitHub Desktop.
Save ganicus/9d0a55eb729adadac538 to your computer and use it in GitHub Desktop.
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