From be40fbc226164f983d4751d24f77f4e1e147b373 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Fri, 14 Nov 2025 18:07:22 +0900 Subject: [PATCH] =?UTF-8?q?feat(series-all):=20=EC=98=A4=EC=A7=81=20?= =?UTF-8?q?=EB=B3=B4=EC=9D=B4=EC=8A=A4=EC=98=A8=EC=97=90=EC=84=9C=EB=A7=8C?= =?UTF-8?q?(=EC=98=A4=EB=A6=AC=EC=A7=80=EB=84=90=20=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=A6=88)=20=EC=A0=84=EC=B2=B4=EB=B3=B4=EA=B8=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/Content/Series/SeriesApi.swift | 12 ++++++++---- .../Sources/Content/Series/SeriesListAllView.swift | 3 ++- .../Content/Series/SeriesListAllViewModel.swift | 5 +++-- .../Sources/Content/Series/SeriesRepository.swift | 3 ++- SodaLive/Sources/Home/HomeTabView.swift | 10 ++++++++++ 5 files changed, 25 insertions(+), 8 deletions(-) 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)