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 return Logger.shared.log("data is wrong", value: nil)
37 return String(string[range.upperBound...])
43 let parameter: Parameter
48 if let r = json["api_result"].int { return r == 1 }
53 init(api: API, parameter: Parameter, json: JSON) {
56 self.parameter = parameter
61 init?(request: URLRequest, data: Data) {
65 guard let josn = splitJSON(data) else {
67 Logger.shared.log("Can not parse JSON")
71 self.json = JSON(parseJSON: josn)
73 guard let parameter = Parameter(request) else {
75 Logger.shared.log("Can not parse Parameter")
79 self.parameter = parameter
81 guard let api = request.url?.path else {
83 Logger.shared.log("URLRequest is wrong")
87 self.api = API(endpointPath: api)