2 // DropShipHistoryCommand.swift
5 // Created by Hori,Masaki on 2017/01/14.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class DropShipHistoryCommand: JSONCommand {
13 override func execute() {
15 if api.endpoint == .port || api.endpoint == .shipDeck {
20 if api.type != .battleResult {
25 guard let shipName = data["api_get_ship"]["api_ship_name"].string else {
29 guard let winRank = data["api_win_rank"].string else {
34 let tempStore = TemporaryDataStore.default
35 guard let battle = tempStore.sync(execute: { tempStore.battle() }) else {
37 Logger.shared.log("Can not get Battle")
42 let mapAreaId = tempStore.sync { battle.mapArea }
43 let mapInfoId = tempStore.sync { battle.mapInfo }
45 let store = ServerDataStore.default
47 guard let mapInfoName = store.sync(execute: { store.mapInfo(area: mapAreaId, no: mapInfoId)?.name }) else {
49 Logger.shared.log("KCMasterMapInfo is not found")
54 guard let mapAreaName = store.sync(execute: { store.mapArea(by: mapAreaId)?.name }) else {
56 Logger.shared.log("KCMasterMapArea is not found")
62 let localStore = LocalDataStore.oneTimeEditor()
65 guard let new = localStore.createHiddenDropShipHistory() else {
67 Logger.shared.log("Can not create HiddenDropShipHistory")
72 new.shipName = shipName
73 new.mapArea = "\(mapAreaId)"
74 new.mapAreaName = mapAreaName
75 new.mapInfo = tempStore.sync { battle.mapInfo }
76 new.mapInfoName = mapInfoName
77 new.mapCell = tempStore.sync { battle.no }
83 private func storeToVisible() {
85 let store = LocalDataStore.oneTimeEditor()
88 let hidden = store.hiddenDropShipHistories()
89 _ = hidden.map(store.createDropShipHistory(from:))
90 hidden.forEach(store.delete)