feat(series-all): 오직 보이스온에서만(오리지널 시리즈) 전체보기 추가
This commit is contained in:
@@ -9,7 +9,7 @@ import Foundation
|
||||
import Moya
|
||||
|
||||
enum SeriesApi {
|
||||
case getSeriesList(creatorId: Int, sortType: SeriesListAllViewModel.SeriesSortType, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
|
||||
case getSeriesList(creatorId: Int?, isOriginal: Bool, sortType: SeriesListAllViewModel.SeriesSortType, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
|
||||
case getSeriesDetail(seriesId: Int, isAdultContentVisible: Bool)
|
||||
case getSeriesContentList(seriesId: Int, isAdultContentVisible: Bool, page: Int, size: Int, sortType: SeriesListAllViewModel.SeriesSortType)
|
||||
case getRecommendSeriesList(isAdultContentVisible: Bool, contentType: ContentType)
|
||||
@@ -45,16 +45,20 @@ extension SeriesApi: TargetType {
|
||||
|
||||
var task: Moya.Task {
|
||||
switch self {
|
||||
case .getSeriesList(let creatorId, let sortType, let isAdultContentVisible, let contentType, let page, let size):
|
||||
let parameters = [
|
||||
"creatorId": creatorId,
|
||||
case .getSeriesList(let creatorId, let isOriginal, let sortType, let isAdultContentVisible, let contentType, let page, let size):
|
||||
var parameters = [
|
||||
"sortType": sortType,
|
||||
"isAdultContentVisible": isAdultContentVisible,
|
||||
"contentType": contentType,
|
||||
"isOriginal": isOriginal,
|
||||
"page": page - 1,
|
||||
"size": size
|
||||
] as [String : Any]
|
||||
|
||||
if let creatorId = creatorId {
|
||||
parameters["creatorId"] = creatorId
|
||||
}
|
||||
|
||||
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
|
||||
|
||||
case .getSeriesDetail(_, let isAdultContentVisible):
|
||||
|
||||
@@ -64,7 +64,8 @@ struct SeriesListAllView: View {
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
viewModel.creatorId = creatorId ?? 0
|
||||
viewModel.creatorId = creatorId
|
||||
viewModel.isOriginal = isOriginal
|
||||
viewModel.getSeriesList()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@ final class SeriesListAllViewModel: ObservableObject {
|
||||
case NEWEST, OLDEST
|
||||
}
|
||||
|
||||
var creatorId: Int = 0
|
||||
var creatorId: Int? = nil
|
||||
var isOriginal: Bool = false
|
||||
|
||||
@Published var isLoading = false
|
||||
@Published var errorMessage = ""
|
||||
@@ -31,7 +32,7 @@ final class SeriesListAllViewModel: ObservableObject {
|
||||
if !isLoading && !isLast {
|
||||
isLoading = true
|
||||
repository
|
||||
.getSeriesList(creatorId: creatorId, sortType: .NEWEST, page: page, size: pageSize)
|
||||
.getSeriesList(creatorId: creatorId, isOriginal: isOriginal, sortType: .NEWEST, page: page, size: pageSize)
|
||||
.sink { result in
|
||||
switch result {
|
||||
case .finished:
|
||||
|
||||
@@ -13,10 +13,11 @@ import Moya
|
||||
class SeriesRepository {
|
||||
private let api = MoyaProvider<SeriesApi>()
|
||||
|
||||
func getSeriesList(creatorId: Int, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
|
||||
func getSeriesList(creatorId: Int?, isOriginal: Bool, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
|
||||
return api.requestPublisher(
|
||||
.getSeriesList(
|
||||
creatorId: creatorId,
|
||||
isOriginal: isOriginal,
|
||||
sortType: sortType,
|
||||
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
|
||||
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL,
|
||||
|
||||
@@ -201,6 +201,16 @@ struct HomeTabView: View {
|
||||
Text(" 보이스온에서만")
|
||||
.font(.custom(Font.preBold.rawValue, size: 24))
|
||||
.foregroundColor(.white)
|
||||
|
||||
Spacer()
|
||||
|
||||
Text("전체보기")
|
||||
.font(.custom(Font.preRegular.rawValue, size: 14))
|
||||
.foregroundColor(.init(hex: "78909C"))
|
||||
.onTapGesture {
|
||||
AppState.shared
|
||||
.setAppStep(step: .seriesAll(isOriginal: true))
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, 24)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user