5 // Created by Hori,Masaki on 2017/02/23.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class DeckMapper: JSONMapper {
13 let apiResponse: APIResponse
14 let configuration: MappingConfiguration<Deck>
16 required init(_ apiResponse: APIResponse) {
18 self.apiResponse = apiResponse
19 self.configuration = MappingConfiguration(entity: Deck.entity,
20 dataKeys: DeckMapper.dataKeys(apiResponse),
21 editorStore: ServerDataStore.oneTimeEditor())
25 private enum DeckAPI: String {
27 case getMemberDeck = "/kcsapi/api_get_member/deck"
28 case port = "/kcsapi/api_port/port"
29 case getMemberShip2 = "/kcsapi/api_get_member/ship2"
30 case getMemberShip3 = "/kcsapi/api_get_member/ship3"
31 case getMemberShipDeck = "/kcsapi/api_get_member/ship_deck"
32 case getMemberDeckPort = "/kcsapi/api_get_member/deck_port"
33 case henseiPresetSelect = "/kcsapi/api_req_hensei/preset_select"
34 case kaisouPowerUp = "/kcsapi/api_req_kaisou/powerup"
37 private class func dataKeys(_ apiResponse: APIResponse) -> [String] {
39 guard let deckApi = DeckAPI(rawValue: apiResponse.api) else { return ["api_data"] }
42 case .port: return ["api_data", "api_deck_port"]
44 case .getMemberShip2: return ["api_data_deck"]
46 case .getMemberShip3: return ["api_data", "api_deck_data"]
48 case .getMemberShipDeck: return ["api_data", "api_deck_data"]
50 case .kaisouPowerUp: return ["api_data", "api_deck"]
52 case .getMemberDeck, .getMemberDeckPort, .henseiPresetSelect: return ["api_data"]