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 ?? "" }
}
}