feat: 신규 홈 추가

This commit is contained in:
Yu Sung
2025-07-11 12:18:37 +09:00
parent fca5425e81
commit e121ec1ee4
12 changed files with 492 additions and 3 deletions

View File

@@ -0,0 +1,73 @@
//
// 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))"]
}
}