5 // Created by Hori,Masaki on 2017/02/24.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class BasicMapper: JSONMapper {
13 let apiResponse: APIResponse
14 let configuration: MappingConfiguration<Basic>
16 required init(_ apiResponse: APIResponse) {
18 self.apiResponse = apiResponse
19 self.configuration = MappingConfiguration(entity: Basic.entity,
20 dataKeys: BasicMapper.dataKeys(apiResponse),
21 editorStore: ServerDataStore.oneTimeEditor())
24 private class func dataKeys(_ apiResponse: APIResponse) -> [String] {
26 switch apiResponse.api.endpoint {
28 case .port: return ["api_data", "api_basic"]
30 case .basic: return ["api_data"]
34 Logger.shared.log("Missing API: \(apiResponse.api)")
43 configuration.editorStore.async(execute: commintInContext)
46 private func commintInContext() {
48 guard let store = configuration.editorStore as? ServerDataStore,
49 let basic = store.basic() ?? store.createBasic() else {
51 Logger.shared.log("Can not Get Basic")
56 registerElement(data, to: basic)