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 dataKey(_ 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 let apiResponse: APIResponse
37 let configuration: MappingConfiguration
39 required init(_ apiResponse: APIResponse) {
40 self.apiResponse = apiResponse
41 self.configuration = MappingConfiguration(entity: .deck,
42 dataKey: dataKey(apiResponse),
43 editorStore: ServerDataStore.oneTimeEditor())