// // RoomControlApi.swift // fiveConstant // // Created by 李建 on 2023/2/14. // import Foundation import Moya import SwiftyUserDefaults enum RoomControlApi { case power(data: PowerControlReq) case fanSpeed(data: FanSpeedControlReq) case temp(data: TempControlReq) case mode(data: ModeControlReq) case timer } extension RoomControlApi: TargetType { var baseURL: URL { return URL(string: BASE_URL)! } var path: String { switch self { case .power: return "/api/v1/control/power" case .mode: return "/api/v1/control/mode" case .temp: return "/api/v1/control/temp" case .fanSpeed: return "/api/v1/control/speed" case .timer: return "/api/v1/control/timer" } } var method: Moya.Method { return .post } var task: Moya.Task { switch self { case .power(let data): return .requestJSONEncodable(data) case .mode(let data): return .requestJSONEncodable(data) case .fanSpeed(let data): return .requestJSONEncodable(data) case .temp(let data): return .requestJSONEncodable(data) default: return .requestPlain } } var headers: [String : String]? { return ["Authorization": "Bearer \(Defaults[\.token] ?? "")"] } }