import Foundation import Moya enum MainChatApi { case getChatRooms(filter: String, cursor: String?) } extension MainChatApi: TargetType { var baseURL: URL { return URL(string: BASE_URL)! } var path: String { switch self { case .getChatRooms: return "/api/v2/chat/rooms" } } var method: Moya.Method { switch self { case .getChatRooms: return .get } } var task: Moya.Task { switch self { case .getChatRooms(let filter, let cursor): var parameters: [String: Any] = [ "filter": filter ] if let cursor { parameters["cursor"] = cursor } return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) } } var headers: [String: String]? { return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"] } }