2 // StoreCreateSlotItemHistoryCommand.swift
5 // Created by Hori,Masaki on 2017/01/11.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
12 final class StoreCreateSlotItemHistoryCommand: JSONCommand {
14 override func execute() {
16 guard let fuel = parameter["api_item1"].int,
17 let bull = parameter["api_item2"].int,
18 let steel = parameter["api_item3"].int,
19 let bauxite = parameter["api_item4"].int else {
21 return Logger.shared.log("Parameter is Wrong")
24 let success = data["api_create_flag"].int ?? 0
25 let name = masterSlotItemName(sccess: success, data: data)
26 let numberOfUsedKaihatuSizai = (success != 0 ? 1 : 0)
28 let store = ServerDataStore.default
29 guard let flagShip = store.sync(execute: { store.deck(by: 1)?[0] }) else {
31 return Logger.shared.log("Flagship is not found")
34 guard let commanderLv = store.sync(execute: { store.basic()?.level }) else {
36 return print("Basic is wrong")
39 let localStore = LocalDataStore.oneTimeEditor()
40 guard let newHistory = localStore.sync(execute: { localStore.createKaihatuHistory() }) else {
42 return Logger.shared.log("Can not create new KaihatuHistory entry")
47 newHistory.name = name
48 newHistory.fuel = fuel
49 newHistory.bull = bull
50 newHistory.steel = steel
51 newHistory.bauxite = bauxite
52 newHistory.kaihatusizai = numberOfUsedKaihatuSizai
53 newHistory.flagShipLv = store.sync { flagShip.lv }
54 newHistory.flagShipName = store.sync { flagShip.name }
55 newHistory.commanderLv = commanderLv
56 newHistory.date = Date()
60 private func masterSlotItemName(sccess: Int, data: JSON) -> String {
64 return LocalizedStrings.failDevelop.string
67 guard let slotItemId = data["api_slot_item"]["api_slotitem_id"].int else {
69 return Logger.shared.log("api_slotitem_id is wrong", value: "")
72 let store = ServerDataStore.default
73 return store.sync { store.masterSlotItem(by: slotItemId)?.name ?? "" }