OSDN Git Service

不要となっていたプロパティを削除
[kcd/KCD.git] / KCD / StoreCreateSlotItemHistoryCommand.swift
index c69ce10..d46be7e 100644 (file)
@@ -9,52 +9,78 @@
 import Cocoa
 import SwiftyJSON
 
-class StoreCreateSlotItemHistoryCommand: JSONCommand {
+final class StoreCreateSlotItemHistoryCommand: JSONCommand {
+    
     override func execute() {
+        
         guard let fuel = parameter["api_item1"].int,
             let bull = parameter["api_item2"].int,
             let steel = parameter["api_item3"].int,
-            let bauxite = parameter["api_item4"].int
-            else { return print("Parameter is Wrong") }
+            let bauxite = parameter["api_item4"].int else {
+                
+                Logger.shared.log("Parameter is Wrong")
+                
+                return
+        }
         
         let success = data["api_create_flag"].int ?? 0
         let name = masterSlotItemName(sccess: success, data: data)
-        let numberOfUsedKaihatuSizai = success != 0 ? 1 : 0
+        let numberOfUsedKaihatuSizai = (success != 0 ? 1 : 0)
         
         let store = ServerDataStore.default
-        guard let flagShip = store.deck(by: 1)
-            .map({ $0.ship_0 })
-            .flatMap({ store.ship(by: $0) })
-            else { return print("Flagship is not found") }
+        guard let flagShip = store.sync(execute: { store.deck(by: 1)?[0] }) else {
+            
+            Logger.shared.log("Flagship is not found")
+            
+            return
+        }
         
-        guard let basic = store.basic()
-            else { return print("Basic is wrong") }
+        guard let commanderLv = store.sync(execute: { store.basic()?.level }) else {
+            
+            Logger.shared.log("Basic is wrong")
+            
+            return
+        }
         
         let localStore = LocalDataStore.oneTimeEditor()
-        guard let newHistory = localStore.createKaihatuHistory()
-            else { return print("Can not create new KaihatuHistory entry") }
-        newHistory.name = name
-        newHistory.fuel = fuel
-        newHistory.bull = bull
-        newHistory.steel = steel
-        newHistory.bauxite = bauxite
-        newHistory.kaihatusizai = numberOfUsedKaihatuSizai
-        newHistory.flagShipLv = flagShip.lv
-        newHistory.flagShipName = flagShip.name
-        newHistory.commanderLv = basic.level
-        newHistory.date = Date()
+        guard let newHistory = localStore.sync(execute: { localStore.createKaihatuHistory() }) else {
+            
+            Logger.shared.log("Can not create new KaihatuHistory entry")
+            
+            return
+        }
+        
+        localStore.sync {
+            
+            newHistory.name = name
+            newHistory.fuel = fuel
+            newHistory.bull = bull
+            newHistory.steel = steel
+            newHistory.bauxite = bauxite
+            newHistory.kaihatusizai = numberOfUsedKaihatuSizai
+            newHistory.flagShipLv = store.sync { flagShip.lv }
+            newHistory.flagShipName = store.sync { flagShip.name }
+            newHistory.commanderLv = commanderLv
+            newHistory.date = Date()
+        }
     }
     
     private func masterSlotItemName(sccess: Int, data: JSON) -> String {
+        
         if sccess == 0 {
-            return NSLocalizedString("fail to develop", comment: "fail to develop")
+            
+            return LocalizedStrings.failDevelop.string
         }
-        guard let slotItemId = data["api_slot_item"]["api_slotitem_id"].int
-            else {
-                print("api_slotitem_id is wrong")
-                return ""
+        
+        guard let slotItemId = data["api_slot_item"]["api_slotitem_id"].int else {
+            
+            Logger.shared.log("api_slotitem_id is wrong")
+            
+            return ""
         }
         
-        return ServerDataStore.default.masterSlotItem(by: slotItemId)?.name ?? ""
+        let store = ServerDataStore.default
+        
+        return store.sync { store.masterSlotItem(by: slotItemId)?.name ?? "" }
     }
 }