Brak opisu

GroupDetailModel.swift 2.9KB

    // // GroupDetailModel.swift // PaiAi // // Created by zhengjianfei on 16/4/5. // Copyright © 2016年 FFIB. All rights reserved. // import Foundation import ObjectMapper public struct GroupDetailModel { public var users: GroupUserInfoModel? public var group_id: String = "" var group: GroupItem? init() {} } extension GroupDetailModel: Mappable { mutating public func mapping(map: Map) { } public init(map: Map) { group_id <- map["group_id"] guard let group = map.JSON["group"] as? [String: AnyObject], let users = map.JSON["users"] as? [String: AnyObject] else { return } // self.group = GroupModel(map: Map(mappingType: .fromJSON, JSON: group)) self.users = GroupUserInfoModel(map: Map(mappingType: .fromJSON, JSON: users)) } } extension GroupDetailModel: SingleParsable { public static func parse(data: [String: AnyObject]) -> GroupDetailModel { guard let status = data["status"] as? Int, let res = data["data"] as? [String: AnyObject], status == 200 else { return GroupDetailModel() } return GroupDetailModel(map: Map(mappingType: .fromJSON, JSON: res)) } } public struct GroupUserInfoModel { public var passed_count: Int = 0 public var passed = [UserModel]() public var applying_count: Int = 0 public var applying = [UserModel]() init() {} } extension GroupUserInfoModel: SingleParsable { public static func parse(data: [String: AnyObject]) -> GroupUserInfoModel { return GroupUserInfoModel(map:Map(mappingType: MappingType.fromJSON, JSON: data)) } } extension GroupUserInfoModel: Mappable { mutating public func mapping(map: Map) { } public init(map: Map) { passed_count <- map["passed_count"] applying_count <- map["applying_count"] guard let passes = map.JSON["passed"] as? [[String: AnyObject]] else { return } passed = passes.compactMap { UserModel.init(map: Map.init(mappingType: .fromJSON, JSON: $0))} } } public struct UserModel { public var user_id: String = "" public var avatar: String = "" public var nickname: String = "" public var admin: Bool = false } extension UserModel: Mappable { mutating public func mapping(map: Map) { } public init(map: Map) { user_id <- map["user_id"] avatar <- map["avatar"] nickname <- map["nickname"] admin <- map["admin"] } } struct GroupDetailNetworkQequest: NetworkRequest { typealias NetworkResponse = GroupDetailModel var path: Interfaces { get { return .groupDetail } set { } } var parameter: [String: AnyObject]? init(param: [String: AnyObject]?, path: Interfaces = .groupDetail) { self.parameter = param self.path = path } }