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