2 // RemodelSlotItemCommand.swift
5 // Created by Hori,Masaki on 2017/01/09.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 class RemodelSlotItemCommand: JSONCommand {
12 override func execute() {
13 guard let data = json[dataKey] as? [String: Any]
14 else { return print("JSON is wrong") }
16 guard let success = data["api_remodel_flag"] as? Int,
20 guard let slotItemId = arguments["api_slot_id"].flatMap({ Int($0) }),
21 let afterSlot = data["api_after_slot"] as? [String: Any]
22 else { return print("api_slot_id is wrong") }
24 let store = ServerDataStore.oneTimeEditor()
25 guard let slotItem = store.slotItem(byId: slotItemId)
26 else { return print("SlotItem not found") }
28 if let locked = afterSlot["api_locked"] as? Bool {
29 slotItem.locked = locked
31 if let masterSlotItemId = afterSlot["api_slotitem_id"] as? Int,
32 masterSlotItemId != slotItem.slotitem_id,
33 let masterSlotItem = store.masterSlotItem(by: slotItemId) {
34 slotItem.master_slotItem = masterSlotItem
35 slotItem.slotitem_id = slotItemId
37 if let level = afterSlot["api_level"] as? Int {
38 slotItem.level = level
41 // remove used slot items.
42 guard let useSlot = data["api_use_slot_id"] as? [Int]
44 store.slotItems(in: useSlot).forEach { store.delete($0) }