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