OSDN Git Service

Loggerを利用するようにした
[kcd/KCD.git] / KCD / StoreCreateSlotItemHistoryCommand.swift
1 //
2 //  StoreCreateSlotItemHistoryCommand.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/11.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10 import SwiftyJSON
11
12 final class StoreCreateSlotItemHistoryCommand: JSONCommand {
13     
14     override func execute() {
15         
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 {
20                 
21                 return Logger.shared.log("Parameter is Wrong")
22         }
23         
24         let success = data["api_create_flag"].int ?? 0
25         let name = masterSlotItemName(sccess: success, data: data)
26         let numberOfUsedKaihatuSizai = (success != 0 ? 1 : 0)
27         
28         let store = ServerDataStore.default
29         
30         guard let flagShip = store.deck(by: 1)?[0] else {
31             
32             return Logger.shared.log("Flagship is not found")
33         }
34         
35         guard let basic = store.basic() else { return print("Basic is wrong") }
36         
37         let localStore = LocalDataStore.oneTimeEditor()
38         
39         guard let newHistory = localStore.createKaihatuHistory() else {
40             
41             return Logger.shared.log("Can not create new KaihatuHistory entry")
42         }
43         
44         newHistory.name = name
45         newHistory.fuel = fuel
46         newHistory.bull = bull
47         newHistory.steel = steel
48         newHistory.bauxite = bauxite
49         newHistory.kaihatusizai = numberOfUsedKaihatuSizai
50         newHistory.flagShipLv = flagShip.lv
51         newHistory.flagShipName = flagShip.name
52         newHistory.commanderLv = basic.level
53         newHistory.date = Date()
54     }
55     
56     private func masterSlotItemName(sccess: Int, data: JSON) -> String {
57         
58         if sccess == 0 {
59             
60             return LocalizedStrings.failDevelop.string
61             
62         }
63         
64         guard let slotItemId = data["api_slot_item"]["api_slotitem_id"].int else {
65             
66             return Logger.shared.log("api_slotitem_id is wrong", value: "")
67         }
68         
69         return ServerDataStore.default.masterSlotItem(by: slotItemId)?.name ?? ""
70     }
71 }