// // HttpServer2.swift // Swifter // // Created by Damian Kolakowski on 17/12/15. // Copyright © 2015 Damian Kołakowski. All rights reserved. // import Foundation public class HttpServer: HttpServerIO { public static let VERSION = "1.0.7" private let router = HttpRouter() public override init() { self.DELETE = MethodRoute(method: "DELETE", router: router) self.UPDATE = MethodRoute(method: "UPDATE", router: router) self.HEAD = MethodRoute(method: "HEAD", router: router) self.POST = MethodRoute(method: "POST", router: router) self.GET = MethodRoute(method: "GET", router: router) self.PUT = MethodRoute(method: "PUT", router: router) } public var DELETE, UPDATE, HEAD, POST, GET, PUT : MethodRoute; public subscript(path: String) -> (HttpRequest -> HttpResponse)? { set { router.register(nil, path: path, handler: newValue) } get { return nil } } public var routes: [String] { return router.routes(); } override public func dispatch(method: String, path: String) -> ([String:String], HttpRequest -> HttpResponse) { if let result = router.route(method, path: path) { return result } return super.dispatch(method, path: path) } public struct MethodRoute { public let method: String public let router: HttpRouter public subscript(path: String) -> (HttpRequest -> HttpResponse)? { set { router.register(method, path: path, handler: newValue) } get { return nil } } } }