|
//
// 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
}
}
|