5 // Created by Hori,Masaki on 2017/01/20.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
14 func value(for keyPath: String) -> JSON {
16 return self[keyPath.components(separatedBy: ".")]
21 let index = self.count - 1
27 private func splitJSON(_ data: Data) -> String? {
29 let prefix = "svdata="
31 guard let string = data.utf8String,
32 let range = string.range(of: prefix) else {
34 Logger.shared.log("data is wrong")
39 return String(string[range.upperBound...])
45 let parameter: Parameter
51 if let r = json["api_result"].int { return r == 1 }
56 init(api: API, parameter: Parameter, json: JSON) {
59 self.parameter = parameter
64 init?(request: URLRequest, data: Data) {
68 guard let josn = splitJSON(data) else {
70 Logger.shared.log("Can not parse JSON")
75 self.json = JSON(parseJSON: josn)
77 guard let parameter = Parameter(request) else {
79 Logger.shared.log("Can not parse Parameter")
84 self.parameter = parameter
86 guard let api = request.url?.path else {
88 Logger.shared.log("URLRequest is wrong")
93 self.api = API(endpointPath: api)