OSDN Git Service

Doutaku を 1.0 にアップデート
[kcd/KCD.git] / KCD / MaterialMapper.swift
index 4e130b0..f0ff9a5 100644 (file)
@@ -22,7 +22,7 @@ final class MaterialMapper: JSONMapper {
     required init(_ apiResponse: APIResponse) {
         
         self.apiResponse = apiResponse
-        self.configuration = MappingConfiguration(entity: Material.entity,
+        self.configuration = MappingConfiguration(entity: Material.self,
                                                   dataKeys: MaterialMapper.dataKeys(apiResponse),
                                                   editorStore: ServerDataStore.oneTimeEditor())
     }
@@ -37,7 +37,11 @@ final class MaterialMapper: JSONMapper {
             
         case .remodelSlot: return ["api_data", "api_after_material"]
             
-        default: return Logger.shared.log("Missing API: \(apiResponse.api)", value: ["api_data"])
+        default:
+            
+            Logger.shared.log("Missing API: \(apiResponse.api)")
+            
+            return ["api_data"]
         }
     }
     
@@ -45,17 +49,20 @@ final class MaterialMapper: JSONMapper {
         
         configuration.editorStore.sync(execute: commintInContext)
     }
+    
     private func commintInContext() {
         
         guard let store = configuration.editorStore as? ServerDataStore,
             let material = store.material() ?? store.createMaterial() else {
                 
-                return Logger.shared.log("Can not create Material")
+                Logger.shared.log("Can not create Material")
+                
+                return
         }
         
         if let _ = data[0].int {
             
-            let array = data.arrayValue.flatMap { $0.int }
+            let array = data.arrayValue.compactMap { $0.int }
             register(material, data: array)
             
         } else if let _ = data[0].dictionary {
@@ -81,8 +88,14 @@ final class MaterialMapper: JSONMapper {
         
         data.forEach {
             
-            guard let i = $0["api_id"].int, case 1...keys.count = i else { return }
-            guard let newValue = $0["api_value"].int else { return }
+            guard let i = $0["api_id"].int, case 1...keys.count = i else {
+                
+                return
+            }
+            guard let newValue = $0["api_value"].int else {
+                
+                return
+            }
             
             material.setValue(newValue as NSNumber, forKey: keys[i - 1])
         }