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.self,
20 dataKeys: BasicMapper.dataKeys(apiResponse),
21 editorStore: ServerDataStore.oneTimeEditor(),
22 ignoreKeys: ["api_comment_id", "api_member_id", "api_nickname_id"])
25 private class func dataKeys(_ apiResponse: APIResponse) -> [String] {
27 switch apiResponse.api.endpoint {
29 case .port: return ["api_data", "api_basic"]
31 case .basic: return ["api_data"]
35 Logger.shared.log("Missing API: \(apiResponse.api)")
44 configuration.editorStore.async(execute: commintInContext)
47 private func commintInContext() {
49 guard let store = configuration.editorStore as? ServerDataStore,
50 let basic = store.basic() ?? store.createBasic() else {
52 Logger.shared.log("Can not Get Basic")
57 registerElement(data, to: basic)