// // HomeApi.swift // SodaLive // // Created by klaus on 7/10/25. // import Foundation import Moya enum HomeApi { case getHomeData(isAdultContentVisible: Bool, contentType: ContentType) case getLatestContentByTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType) case getDayOfWeekSeriesList(dayOfWeek: SeriesPublishedDaysOfWeek, isAdultContentVisible: Bool, contentType: ContentType) } extension HomeApi: TargetType { var baseURL: URL { return URL(string: BASE_URL)! } var path: String { switch self { case .getHomeData: return "/api/home" case .getLatestContentByTheme: return "/api/home/latest-content" case .getDayOfWeekSeriesList: return "/api/home/day-of-week-series" } } var method: Moya.Method { return .get } var task: Moya.Task { switch self { case .getHomeData(let isAdultContentVisible, let contentType): let parameters = [ "timezone": TimeZone.current.identifier, "isAdultContentVisible": isAdultContentVisible, "contentType": contentType ] as [String: Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) case .getLatestContentByTheme(let theme, let isAdultContentVisible, let contentType): let parameters = [ "theme": theme, "isAdultContentVisible": isAdultContentVisible, "contentType": contentType ] as [String: Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) case .getDayOfWeekSeriesList(let dayOfWeek, let isAdultContentVisible, let contentType): let parameters = [ "dayOfWeek": dayOfWeek, "isAdultContentVisible": isAdultContentVisible, "contentType": contentType ] as [String: Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) } } var headers: [String : String]? { return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"] } }