110 lines
2.4 KiB
Swift
110 lines
2.4 KiB
Swift
//
|
|
// BaseModel.swift
|
|
// dinoGo
|
|
//
|
|
// Created by 林 on 2020/5/18.
|
|
// Copyright © 2020 Lin. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import ObjectMapper
|
|
import SwiftyJSON
|
|
|
|
var transformInt: (Any?) -> Int? = { value in
|
|
switch value {
|
|
case let value as String:
|
|
return Int(value)
|
|
case let value as Int:
|
|
return value
|
|
case let value as Double:
|
|
return Int(value)
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
var transformStr: (Any?) -> String? = { value in
|
|
switch value {
|
|
case let value as String:
|
|
return value
|
|
case let value as Int:
|
|
return String(value)
|
|
case let value as Double:
|
|
return String(value)
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
var transformJSON: (Any?) -> JSON? = { value in
|
|
if let jsonString = value as? String {
|
|
return JSON(jsonString)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
var transformJsonStr: (Any?) -> String? = { value in
|
|
if let json = value as? JSON {
|
|
return json.string
|
|
}
|
|
return nil
|
|
}
|
|
|
|
/// String >> Int
|
|
let kStrTransformInt = TransformOf<Int, Any>(fromJSON: transformInt,
|
|
toJSON: transformStr)
|
|
/// Int >> String
|
|
let kIntTransformStr = TransformOf<String, Any>(fromJSON: transformStr,
|
|
toJSON: transformInt)
|
|
|
|
/// JsonString >> Json
|
|
let kJsonStrTransformJson = TransformOf<JSON, Any>(fromJSON: transformJSON,
|
|
toJSON: transformJsonStr)
|
|
|
|
protocol BaseModelProtocol: Mappable {
|
|
var status: Bool? { get }
|
|
var code: String? { get }
|
|
var status_code: Int? { get }
|
|
var message: String? { get }
|
|
}
|
|
|
|
extension BaseModelProtocol {
|
|
|
|
var status: Bool? { return nil }
|
|
var code: String? { return nil}
|
|
var status_code: Int? { return nil }
|
|
|
|
var isSuccess: Bool {
|
|
// if let status = status, status == true {
|
|
// if let code = code, code == GatewayStatusCodeOld.success.rawValue {
|
|
// return true
|
|
// }
|
|
//
|
|
// }
|
|
|
|
// 新API
|
|
if let status_code = status_code, status_code == GatewayStatusCode.success.rawValue {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
|
|
}
|
|
|
|
enum BoolType: String {
|
|
|
|
case `true` = "Y"
|
|
case `false` = "N"
|
|
|
|
var boolValue: Bool {
|
|
switch self {
|
|
case .true:
|
|
return true
|
|
case .false:
|
|
return false
|
|
}
|
|
}
|
|
}
|