import Cocoa
final class KenzoDockMapper: JSONMapper {
-
- typealias ObjectType = KenzoDock
-
+
let apiResponse: APIResponse
let configuration: MappingConfiguration<KenzoDock>
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: KenzoDock.entity,
+ self.configuration = MappingConfiguration(entity: KenzoDock.self,
dataKeys: KenzoDockMapper.dataKeys(apiResponse),
- editorStore: ServerDataStore.oneTimeEditor())
- }
-
-
- private enum KenzoDockAPI: String {
-
- case getMemberKDock = "/kcsapi/api_get_member/kdock"
- case kousyouGetShip = "/kcsapi/api_req_kousyou/getship"
- case getMemberRequireInfo = "/kcsapi/api_get_member/require_info"
+ editorStore: ServerDataStore.oneTimeEditor(),
+ ignoreKeys: ["api_member_id"])
}
private class func dataKeys(_ apiResponse: APIResponse) -> [String] {
- guard let kenzoDockApi = KenzoDockAPI(rawValue: apiResponse.api)
- else { return ["api_data"] }
-
- switch kenzoDockApi {
- case .kousyouGetShip: return ["api_data", "api_kdock"]
+ switch apiResponse.api.endpoint {
+
+ case .getShip, .requireInfo: return ["api_data", "api_kdock"]
+
+ case .kdock: return ["api_data"]
+
+ default:
- case .getMemberRequireInfo: return ["api_data", "api_kdock"]
+ Logger.shared.log("Missing API: \(apiResponse.api)")
- case .getMemberKDock: return ["api_data"]
+ return ["api_data"]
}
}
}