diff --git a/SodaLive/Sources/Content/Series/SeriesApi.swift b/SodaLive/Sources/Content/Series/SeriesApi.swift index b5a2bcc..7e03255 100644 --- a/SodaLive/Sources/Content/Series/SeriesApi.swift +++ b/SodaLive/Sources/Content/Series/SeriesApi.swift @@ -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): diff --git a/SodaLive/Sources/Content/Series/SeriesListAllView.swift b/SodaLive/Sources/Content/Series/SeriesListAllView.swift index f4e469b..9f8d2e6 100644 --- a/SodaLive/Sources/Content/Series/SeriesListAllView.swift +++ b/SodaLive/Sources/Content/Series/SeriesListAllView.swift @@ -64,7 +64,8 @@ struct SeriesListAllView: View { } } .onAppear { - viewModel.creatorId = creatorId ?? 0 + viewModel.creatorId = creatorId + viewModel.isOriginal = isOriginal viewModel.getSeriesList() } } diff --git a/SodaLive/Sources/Content/Series/SeriesListAllViewModel.swift b/SodaLive/Sources/Content/Series/SeriesListAllViewModel.swift index e0a6191..8e3d61e 100644 --- a/SodaLive/Sources/Content/Series/SeriesListAllViewModel.swift +++ b/SodaLive/Sources/Content/Series/SeriesListAllViewModel.swift @@ -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: diff --git a/SodaLive/Sources/Content/Series/SeriesRepository.swift b/SodaLive/Sources/Content/Series/SeriesRepository.swift index a25d144..278b254 100644 --- a/SodaLive/Sources/Content/Series/SeriesRepository.swift +++ b/SodaLive/Sources/Content/Series/SeriesRepository.swift @@ -13,10 +13,11 @@ import Moya class SeriesRepository { private let api = MoyaProvider() - func getSeriesList(creatorId: Int, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) -> AnyPublisher { + func getSeriesList(creatorId: Int?, isOriginal: Bool, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) -> AnyPublisher { return api.requestPublisher( .getSeriesList( creatorId: creatorId, + isOriginal: isOriginal, sortType: sortType, isAdultContentVisible: UserDefaults.isAdultContentVisible(), contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, diff --git a/SodaLive/Sources/Home/HomeTabView.swift b/SodaLive/Sources/Home/HomeTabView.swift index d74e872..97cd96a 100644 --- a/SodaLive/Sources/Home/HomeTabView.swift +++ b/SodaLive/Sources/Home/HomeTabView.swift @@ -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)