From 5532b1bdccf57bd166212b48e3540585aabbe2db Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Mon, 14 Oct 2024 01:34:58 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20-=20=EC=B6=94=EC=B2=9C=EC=8B=9C=EB=A6=AC=EC=A6=88,?= =?UTF-8?q?=20=EB=AA=A8=EB=8B=9D=EC=BD=9C,=20=EC=88=8F=ED=94=8C,=20?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=8B=A4=EC=8B=9C=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0=20-=20=EB=82=A8=EC=84=B1=ED=96=A5=EC=9D=B4=EB=A9=B4?= =?UTF-8?q?=20=EC=97=AC=EC=84=B1=20=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4?= =?UTF-8?q?=ED=84=B0,=20=EC=97=AC=EC=84=B1=ED=96=A5=EC=9D=B4=EB=A9=B4=20?= =?UTF-8?q?=EB=82=A8=EC=84=B1=20=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=9E=91=ED=92=88=EB=A7=8C=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/Content/ContentApi.swift | 8 +++++--- SodaLive/Sources/Content/ContentRepository.swift | 11 ++++++++++- SodaLive/Sources/Content/Series/SeriesApi.swift | 12 ++++++++++-- .../Sources/Content/Series/SeriesRepository.swift | 7 ++++++- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/SodaLive/Sources/Content/ContentApi.swift b/SodaLive/Sources/Content/ContentApi.swift index a35f7cf..43f1de2 100644 --- a/SodaLive/Sources/Content/ContentApi.swift +++ b/SodaLive/Sources/Content/ContentApi.swift @@ -36,7 +36,7 @@ enum ContentApi { case getContentRankingSortType case pinContent(contentId: Int) case unpinContent(contentId: Int) - case getAudioContentByTheme(themeId: Int, page: Int, size: Int, sort: ContentAllByThemeViewModel.Sort) + case getAudioContentByTheme(themeId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentAllByThemeViewModel.Sort) } extension ContentApi: TargetType { @@ -127,7 +127,7 @@ extension ContentApi: TargetType { case .unpinContent(let contentId): return "/audio-content/unpin-at-the-top/\(contentId)" - case .getAudioContentByTheme(let themeId, _, _, _): + case .getAudioContentByTheme(let themeId, _, _, _, _, _): return "/audio-content/theme/\(themeId)/content" } } @@ -284,8 +284,10 @@ extension ContentApi: TargetType { case .pinContent, .unpinContent: return .requestPlain - case .getAudioContentByTheme(_, let page, let size, let sort): + case .getAudioContentByTheme(_, let isAdultContentVisible, let contentType, let page, let size, let sort): let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, "page": page - 1, "size": size, "sort-type": sort diff --git a/SodaLive/Sources/Content/ContentRepository.swift b/SodaLive/Sources/Content/ContentRepository.swift index 695b805..2528af3 100644 --- a/SodaLive/Sources/Content/ContentRepository.swift +++ b/SodaLive/Sources/Content/ContentRepository.swift @@ -148,6 +148,15 @@ final class ContentRepository { } func getAudioContentByTheme(themeId: Int, page: Int, size: Int, sort: ContentAllByThemeViewModel.Sort) -> AnyPublisher { - return api.requestPublisher(.getAudioContentByTheme(themeId: themeId, page: page, size: size, sort: sort)) + return api.requestPublisher( + .getAudioContentByTheme( + themeId: themeId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size, + sort: sort + ) + ) } } diff --git a/SodaLive/Sources/Content/Series/SeriesApi.swift b/SodaLive/Sources/Content/Series/SeriesApi.swift index 203c1ae..87f2d6a 100644 --- a/SodaLive/Sources/Content/Series/SeriesApi.swift +++ b/SodaLive/Sources/Content/Series/SeriesApi.swift @@ -12,7 +12,7 @@ enum SeriesApi { case getSeriesList(creatorId: Int, sortType: SeriesListAllViewModel.SeriesSortType, page: Int, size: Int) case getSeriesDetail(seriesId: Int) case getSeriesContentList(seriesId: Int, page: Int, size: Int, sortType: SeriesListAllViewModel.SeriesSortType) - case getRecommendSeriesList + case getRecommendSeriesList(isAdultContentVisible: Bool, contentType: ContentType) } extension SeriesApi: TargetType { @@ -55,9 +55,17 @@ extension SeriesApi: TargetType { return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getSeriesDetail, .getRecommendSeriesList: + case .getSeriesDetail: return .requestPlain + case .getRecommendSeriesList(let isAdultContentVisible, let contentType): + let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) + case .getSeriesContentList(_, let page, let size, let sortType): let parameters = [ "page": page - 1, diff --git a/SodaLive/Sources/Content/Series/SeriesRepository.swift b/SodaLive/Sources/Content/Series/SeriesRepository.swift index a45abaa..22cc8d3 100644 --- a/SodaLive/Sources/Content/Series/SeriesRepository.swift +++ b/SodaLive/Sources/Content/Series/SeriesRepository.swift @@ -26,6 +26,11 @@ class SeriesRepository { } func getRecommendSeriesList() -> AnyPublisher { - return api.requestPublisher(.getRecommendSeriesList) + return api.requestPublisher( + .getRecommendSeriesList( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } }