sodalive-ios/SodaLive/Sources/Content/Series/SeriesRepository.swift

59 lines
1.9 KiB
Swift

//
// SeriesRepository.swift
// SodaLive
//
// Created by klaus on 4/29/24.
//
import Foundation
import CombineMoya
import Combine
import Moya
class SeriesRepository {
private let api = MoyaProvider<SeriesApi>()
func getSeriesList(creatorId: Int, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(
.getSeriesList(
creatorId: creatorId,
sortType: sortType,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL,
page: page,
size: size
)
)
}
func getSeriesDetail(seriesId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(
.getSeriesDetail(
seriesId: seriesId,
isAdultContentVisible: UserDefaults.isAdultContentVisible()
)
)
}
func getSeriesContentList(seriesId: Int, page: Int, size: Int, sortType: SeriesListAllViewModel.SeriesSortType) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(
.getSeriesContentList(
seriesId: seriesId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
page: page,
size: size,
sortType: sortType
)
)
}
func getRecommendSeriesList() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(
.getRecommendSeriesList(
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
}
}