forked from AcaMate/AcaMate_iOS
87 lines
1.8 KiB
Swift
87 lines
1.8 KiB
Swift
//
|
|
// API Response.swift
|
|
// AcaMate
|
|
//
|
|
// Created by Sean Kim on 11/29/24.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class APIResponse<T: Codable>: Codable {
|
|
let status: Status
|
|
let data: T
|
|
}
|
|
|
|
class Status: Codable {
|
|
let code: APICode
|
|
let message: String
|
|
}
|
|
|
|
enum APICode: Codable {
|
|
case success
|
|
case inputErr
|
|
case outputErr
|
|
case networkErr
|
|
case unknownErr
|
|
case anything(String)
|
|
|
|
init(from decoder: Decoder) throws {
|
|
let container = try decoder.singleValueContainer()
|
|
let rawValue = try container.decode(String.self)
|
|
switch rawValue {
|
|
case "000":
|
|
self = .success
|
|
case "001":
|
|
self = .inputErr
|
|
case "002":
|
|
self = .outputErr
|
|
case "003":
|
|
self = .networkErr
|
|
case "999":
|
|
self = .unknownErr
|
|
default:
|
|
self = .anything(rawValue)
|
|
}
|
|
}
|
|
|
|
func encode(to encoder: Encoder) throws {
|
|
var container = encoder.singleValueContainer()
|
|
switch self {
|
|
case .success:
|
|
try container.encode("000")
|
|
case .inputErr:
|
|
try container.encode("001")
|
|
case .outputErr:
|
|
try container.encode("002")
|
|
case .networkErr:
|
|
try container.encode("003")
|
|
case .unknownErr:
|
|
try container.encode("999")
|
|
case .anything(let value):
|
|
try container.encode(value)
|
|
}
|
|
}
|
|
}
|
|
|
|
// /api/v1/in/app/version ----------------
|
|
|
|
class VersionData: Codable {
|
|
let os_type, final_ver, dev_ver, force_ver: String
|
|
let choice_update_yn: Bool
|
|
|
|
}
|
|
|
|
// /api/v1/in/user/login ----------------
|
|
|
|
class User_Academy: Codable {
|
|
let uid: String
|
|
let bid: [String]
|
|
}
|
|
|
|
// /api/v1/in/member/academy ----------------
|
|
class AcademyName: Codable {
|
|
let bid: String
|
|
let name: String
|
|
}
|
|
|