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 + ) + ) } }