Files
sodalive-ios/SodaLive/Sources/Content/Series/Main/SeriesMainApi.swift

84 lines
2.3 KiB
Swift

//
// SeriesMainApi.swift
// SodaLive
//
// Created by klaus on 11/14/25.
//
import Foundation
import Moya
enum SeriesMainApi {
case fetchHome
case getRecommendSeriesList
case getDayOfWeekSeriesList(dayOfWeek: SeriesPublishedDaysOfWeek, page: Int, size: Int)
case getGenreList
case getSeriesListByGenre(genreId: Int, page: Int, size: Int)
}
extension SeriesMainApi: TargetType {
// MARK: API
var path: String {
switch self {
case .fetchHome:
return "/audio-content/series/main"
case .getRecommendSeriesList:
return "/audio-content/series/main/recommend"
case .getDayOfWeekSeriesList:
return "/audio-content/series/main/day-of-week"
case .getGenreList:
return "/audio-content/series/main/genre-list"
case .getSeriesListByGenre:
return "/audio-content/series/main/list-by-genre"
}
}
var task: Moya.Task {
switch self {
case .fetchHome:
return .requestPlain
case .getRecommendSeriesList:
return .requestPlain
case .getDayOfWeekSeriesList(let dayOfWeek, let page, let size):
let parameters = [
"dayOfWeek": dayOfWeek,
"page": page - 1,
"size": size
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getGenreList:
return .requestPlain
case .getSeriesListByGenre(let genreId, let page, let size):
let parameters = [
"genreId": genreId,
"page": page - 1,
"size": size
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
}
}
// MARK:
var baseURL: URL {
return URL(string: BASE_URL)!
}
var method: Moya.Method {
return .get
}
var headers: [String : String]? {
return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]
}
}