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.self,
20 dataKeys: DeckMapper.dataKeys(apiResponse),
21 editorStore: ServerDataStore.oneTimeEditor(),
22 ignoreKeys: ["api_flagship", "api_member_id", "api_name_id"])
25 private class func dataKeys(_ apiResponse: APIResponse) -> [String] {
27 switch apiResponse.api.endpoint {
29 case .port: return ["api_data", "api_deck_port"]
31 case .ship3, .shipDeck: return ["api_data", "api_deck_data"]
33 case .ship2: return ["api_data_deck"]
35 case .powerup: return ["api_data", "api_deck"]
37 case .deck, .deckPort, .presetSelect: return ["api_data"]
41 Logger.shared.log("Missing API: \(apiResponse.api)")