From d5e1acb1c3dfca5b2790f596322aac4d63f4e247 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Tue, 18 Mar 2025 20:49:43 +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=EB=82=A8=EC=84=B1=ED=96=A5,=20=EC=97=AC?= =?UTF-8?q?=EC=84=B1=ED=96=A5=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EC=A0=81=EC=9A=A9=20-=2019=EA=B8=88=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=B3=B4=EA=B8=B0=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/App/AppDelegate.swift | 3 +- SodaLive/Sources/Content/ContentApi.swift | 166 ++++++++++++------ .../Sources/Content/ContentRepository.swift | 7 +- .../Alarm/ContentMainTabAlarmRepository.swift | 17 +- .../Asmr/ContentMainTabAsmrRepository.swift | 15 +- .../ContentMainTabContentRepository.swift | 30 +++- .../Free/ContentMainTabFreeRepository.swift | 34 +++- .../Home/ContentMainTabHomeRepository.swift | 15 +- .../ContentMainTabReplayRepository.swift | 15 +- .../ContentMainTabSeriesRepository.swift | 32 +++- 10 files changed, 262 insertions(+), 72 deletions(-) diff --git a/SodaLive/Sources/App/AppDelegate.swift b/SodaLive/Sources/App/AppDelegate.swift index a3ff8b7..21e04fb 100644 --- a/SodaLive/Sources/App/AppDelegate.swift +++ b/SodaLive/Sources/App/AppDelegate.swift @@ -22,6 +22,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { FirebaseApp.configure() Notifly.initialize(projectId: NOTIFLY_PROJECT_ID, username: NOTIFLY_USERNAME, password: NOTIFLY_PASSWORD) Messaging.messaging().delegate = self + setupAppsFlyer() // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.current().delegate = self @@ -37,8 +38,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) AppEvents.shared.activateApp() - setupAppsFlyer() - return true } diff --git a/SodaLive/Sources/Content/ContentApi.swift b/SodaLive/Sources/Content/ContentApi.swift index 47c9e6f..d163a30 100644 --- a/SodaLive/Sources/Content/ContentApi.swift +++ b/SodaLive/Sources/Content/ContentApi.swift @@ -29,7 +29,7 @@ enum ContentApi { case getCurationList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) case donation(request: AudioContentDonationRequest) case modifyComment(request: ModifyCommentRequest) - case getNewContentThemeList + case getNewContentThemeList(isAdultContentVisible: Bool, contentType: ContentType) case getNewContentAllOfTheme(isFree: Bool, theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) case getAudioContentListByCurationId(curationId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentCurationViewModel.Sort) case getContentRanking(page: Int, size: Int, sortType: String) @@ -39,33 +39,33 @@ enum ContentApi { case getAudioContentByTheme(themeId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentAllByThemeViewModel.Sort) case generateUrl(contentId: Int) - case getContentMainHome - case getPopularContentByCreator(creatorId: Int) + case getContentMainHome(isAdultContentVisible: Bool, contentType: ContentType) + case getPopularContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) - case getContentMainSeries - case getRecommendSeriesListByGenre(genreId: Int) - case getRecommendSeriesByCreator(creatorId: Int) - case getCompletedSeries(page: Int, size: Int) + case getContentMainSeries(isAdultContentVisible: Bool, contentType: ContentType) + case getRecommendSeriesListByGenre(genreId: Int, isAdultContentVisible: Bool, contentType: ContentType) + case getRecommendSeriesByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) + case getCompletedSeries(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) - case getContentMainContent + case getContentMainContent(isAdultContentVisible: Bool, contentType: ContentType) case getContentMainNewContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType) - case getDailyContentRanking(sortType: String) - case getRecommendContentByTag(tag: String) - case getContentMainContentPopularContentByCreator(creatorId: Int) + case getDailyContentRanking(sortType: String, isAdultContentVisible: Bool, contentType: ContentType) + case getRecommendContentByTag(tag: String, contentType: ContentType) + case getContentMainContentPopularContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) - case getContentMainAlarm - case getContentMainAlarmAll(theme: String, page: Int, size: Int) + case getContentMainAlarm(isAdultContentVisible: Bool, contentType: ContentType) + case getContentMainAlarmAll(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) - case getContentMainAsmr - case getPopularAsmrContentByCreator(creatorId: Int) + case getContentMainAsmr(isAdultContentVisible: Bool, contentType: ContentType) + case getPopularAsmrContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) - case getContentMainReplay - case getPopularReplayContentByCreator(creatorId: Int) + case getContentMainReplay(isAdultContentVisible: Bool, contentType: ContentType) + case getPopularReplayContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) - case getContentMainFree - case getIntroduceCreatorList(page: Int, size: Int) - case getNewFreeContentOfTheme(theme: String, page: Int, size: Int) - case getPopularFreeContentByCreator(creatorId: Int) + case getContentMainFree(isAdultContentVisible: Bool, contentType: ContentType) + case getIntroduceCreatorList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) + case getNewFreeContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) + case getPopularFreeContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType) } extension ContentApi: TargetType { @@ -337,8 +337,13 @@ extension ContentApi: TargetType { case .modifyComment(let request): return .requestJSONEncodable(request) - case .getNewContentThemeList: - return .requestPlain + case .getNewContentThemeList(let isAdultContentVisible, let contentType): + let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) case .getNewContentAllOfTheme(let isFree, let theme, let isAdultContentVisible, let contentType, let page, let size): let parameters = [ @@ -399,20 +404,45 @@ extension ContentApi: TargetType { return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getContentMainHome, .getContentMainSeries, .getContentMainContent, - .getContentMainAlarm, .getContentMainAsmr, .getContentMainReplay, .getContentMainFree: - return .requestPlain + case .getContentMainHome(let isAdultContentVisible, let contentType), + .getContentMainSeries(let isAdultContentVisible, let contentType), + .getContentMainContent(let isAdultContentVisible, let contentType), + .getContentMainAlarm(let isAdultContentVisible, let contentType), + .getContentMainAsmr(let isAdultContentVisible, let contentType), + .getContentMainReplay(let isAdultContentVisible, let contentType), + .getContentMainFree(let isAdultContentVisible, let contentType): + let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] - case .getRecommendSeriesListByGenre(let genreId): - let parameters = ["genreId": genreId] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getPopularContentByCreator(let creatorId): - let parameters = ["creatorId": creatorId] + case .getRecommendSeriesListByGenre(let genreId, let isAdultContentVisible, let contentType): + let parameters = [ + "genreId": genreId, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getRecommendSeriesByCreator(let creatorId): - let parameters = ["creatorId": creatorId] + case .getPopularContentByCreator(let creatorId, let isAdultContentVisible, let contentType): + let parameters = [ + "creatorId": creatorId, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) + + case .getRecommendSeriesByCreator(let creatorId, let isAdultContentVisible, let contentType): + let parameters = [ + "creatorId": creatorId, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) case .getContentMainNewContentOfTheme(let theme, let isAdultContentVisible, let contentType): @@ -423,39 +453,77 @@ extension ContentApi: TargetType { ] as [String : Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getDailyContentRanking(let sortType): - let parameters = ["sort-type": sortType] + case .getDailyContentRanking(let sortType, let isAdultContentVisible, let contentType): + let parameters = [ + "sort-type": sortType, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getRecommendContentByTag(let tag): - let parameters = ["tag": tag] + case .getRecommendContentByTag(let tag, let contentType): + let parameters = [ + "tag": tag, + "contentType": contentType + ] as [String : Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getContentMainContentPopularContentByCreator(let creatorId): - let parameters = ["creatorId": creatorId] + case .getContentMainContentPopularContentByCreator(let creatorId, let isAdultContentVisible, let contentType): + let parameters = [ + "creatorId": creatorId, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getContentMainAlarmAll(let theme, let page, let size), .getNewFreeContentOfTheme(let theme, let page, let size): + case .getNewFreeContentOfTheme(let theme, let isAdultContentVisible, let contentType, let page, let size): let parameters = [ "theme": theme, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, "page": page - 1, "size": size ] as [String : Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - case .getIntroduceCreatorList(let page, let size): - let parameters = ["page": page - 1, "size": size] - return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - - case .getPopularAsmrContentByCreator(let creatorId), .getPopularReplayContentByCreator(let creatorId), .getPopularFreeContentByCreator(let creatorId): - let parameters = ["creatorId": creatorId] - return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) - - case .getCompletedSeries(let page, let size): + case .getContentMainAlarmAll(let theme, let isAdultContentVisible, let contentType, let page, let size): let parameters = [ + "theme": theme, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, "page": page - 1, "size": size - ] + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) + + case .getIntroduceCreatorList(let isAdultContentVisible, let contentType, let page, let size): + let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, + "page": page - 1, + "size": size + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) + + case .getPopularAsmrContentByCreator(let creatorId, let isAdultContentVisible, let contentType), + .getPopularReplayContentByCreator(let creatorId, let isAdultContentVisible, let contentType), + .getPopularFreeContentByCreator(let creatorId, let isAdultContentVisible, let contentType): + let parameters = [ + "creatorId": creatorId, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) + + case .getCompletedSeries(let isAdultContentVisible, let contentType, let page, let size): + let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, + "page": page - 1, + "size": size + ] as [String : Any] + return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) } } diff --git a/SodaLive/Sources/Content/ContentRepository.swift b/SodaLive/Sources/Content/ContentRepository.swift index 1a105d2..55d5260 100644 --- a/SodaLive/Sources/Content/ContentRepository.swift +++ b/SodaLive/Sources/Content/ContentRepository.swift @@ -109,7 +109,12 @@ final class ContentRepository { } func getNewContentThemeList() -> AnyPublisher { - return api.requestPublisher(.getNewContentThemeList) + return api.requestPublisher( + .getNewContentThemeList( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getNewContentAllOfTheme(isFree: Bool, theme: String, page: Int, size: Int) -> AnyPublisher { diff --git a/SodaLive/Sources/Content/Main/V2/Alarm/ContentMainTabAlarmRepository.swift b/SodaLive/Sources/Content/Main/V2/Alarm/ContentMainTabAlarmRepository.swift index b208ee5..67aa001 100644 --- a/SodaLive/Sources/Content/Main/V2/Alarm/ContentMainTabAlarmRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Alarm/ContentMainTabAlarmRepository.swift @@ -15,10 +15,23 @@ final class ContentMainTabAlarmRepository { private let api = MoyaProvider() func getContentMainAlarm() -> AnyPublisher { - return api.requestPublisher(.getContentMainAlarm) + return api.requestPublisher( + .getContentMainAlarm( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getContentMainAlarmAll(theme: String, page: Int = 1, size: Int = 10) -> AnyPublisher { - return api.requestPublisher(.getContentMainAlarmAll(theme: theme, page: page, size: size)) + return api.requestPublisher( + .getContentMainAlarmAll( + theme: theme, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Asmr/ContentMainTabAsmrRepository.swift b/SodaLive/Sources/Content/Main/V2/Asmr/ContentMainTabAsmrRepository.swift index c99beec..312129e 100644 --- a/SodaLive/Sources/Content/Main/V2/Asmr/ContentMainTabAsmrRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Asmr/ContentMainTabAsmrRepository.swift @@ -15,10 +15,21 @@ final class ContentMainTabAsmrRepository { private let api = MoyaProvider() func getContentMainAsmr() -> AnyPublisher { - return api.requestPublisher(.getContentMainAsmr) + return api.requestPublisher( + .getContentMainAsmr( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getPopularContentByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getPopularAsmrContentByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getPopularAsmrContentByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Content/ContentMainTabContentRepository.swift b/SodaLive/Sources/Content/Main/V2/Content/ContentMainTabContentRepository.swift index cd55fc4..f50f8f9 100644 --- a/SodaLive/Sources/Content/Main/V2/Content/ContentMainTabContentRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Content/ContentMainTabContentRepository.swift @@ -15,7 +15,12 @@ final class ContentMainTabContentRepository { private let api = MoyaProvider() func getContentMainContent() -> AnyPublisher { - return api.requestPublisher(.getContentMainContent) + return api.requestPublisher( + .getContentMainContent( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getNewContentOfTheme(theme: String) -> AnyPublisher { @@ -29,14 +34,31 @@ final class ContentMainTabContentRepository { } func getContentRanking(sortType: String) -> AnyPublisher { - return api.requestPublisher(.getDailyContentRanking(sortType: sortType)) + return api.requestPublisher( + .getDailyContentRanking( + sortType: sortType, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getRecommendContentByTag(tag: String) -> AnyPublisher { - return api.requestPublisher(.getRecommendContentByTag(tag: tag)) + return api.requestPublisher( + .getRecommendContentByTag( + tag: tag, + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getPopularContentByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getContentMainContentPopularContentByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getContentMainContentPopularContentByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Free/ContentMainTabFreeRepository.swift b/SodaLive/Sources/Content/Main/V2/Free/ContentMainTabFreeRepository.swift index 1d01a66..54015c5 100644 --- a/SodaLive/Sources/Content/Main/V2/Free/ContentMainTabFreeRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Free/ContentMainTabFreeRepository.swift @@ -15,18 +15,44 @@ final class ContentMainTabFreeRepository { private let api = MoyaProvider() func getContentMainFree() -> AnyPublisher { - return api.requestPublisher(.getContentMainFree) + return api.requestPublisher( + .getContentMainFree( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getIntroduceCreatorList(page: Int, size: Int) -> AnyPublisher { - return api.requestPublisher(.getIntroduceCreatorList(page: page, size: size)) + return api.requestPublisher( + .getIntroduceCreatorList( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } func getNewContentOfTheme(theme: String, page: Int = 1, size: Int = 20) -> AnyPublisher { - return api.requestPublisher(.getNewFreeContentOfTheme(theme: theme, page: page, size: size)) + return api.requestPublisher( + .getNewFreeContentOfTheme( + theme: theme, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } func getPopularContentByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getPopularFreeContentByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getPopularFreeContentByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Home/ContentMainTabHomeRepository.swift b/SodaLive/Sources/Content/Main/V2/Home/ContentMainTabHomeRepository.swift index f723da6..387e26c 100644 --- a/SodaLive/Sources/Content/Main/V2/Home/ContentMainTabHomeRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Home/ContentMainTabHomeRepository.swift @@ -14,10 +14,21 @@ class ContentMainTabHomeRepository { private let api = MoyaProvider() func getContentMainHome() -> AnyPublisher { - return api.requestPublisher(.getContentMainHome) + return api.requestPublisher( + .getContentMainHome( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getPopularContentByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getPopularContentByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getPopularContentByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Replay/ContentMainTabReplayRepository.swift b/SodaLive/Sources/Content/Main/V2/Replay/ContentMainTabReplayRepository.swift index 0f5f147..b48ed27 100644 --- a/SodaLive/Sources/Content/Main/V2/Replay/ContentMainTabReplayRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Replay/ContentMainTabReplayRepository.swift @@ -15,10 +15,21 @@ final class ContentMainTabReplayRepository { private let api = MoyaProvider() func getContentMainReplay() -> AnyPublisher { - return api.requestPublisher(.getContentMainReplay) + return api.requestPublisher( + .getContentMainReplay( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getPopularContentByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getPopularReplayContentByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getPopularReplayContentByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } } diff --git a/SodaLive/Sources/Content/Main/V2/Series/ContentMainTabSeriesRepository.swift b/SodaLive/Sources/Content/Main/V2/Series/ContentMainTabSeriesRepository.swift index f9a6fd2..3d55928 100644 --- a/SodaLive/Sources/Content/Main/V2/Series/ContentMainTabSeriesRepository.swift +++ b/SodaLive/Sources/Content/Main/V2/Series/ContentMainTabSeriesRepository.swift @@ -14,18 +14,42 @@ final class ContentMainTabSeriesRepository { private let api = MoyaProvider() func getContentMainSeries() -> AnyPublisher { - return api.requestPublisher(.getContentMainSeries) + return api.requestPublisher( + .getContentMainSeries( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getRecommendSeriesListByGenre(genreId: Int) -> AnyPublisher { - return api.requestPublisher(.getRecommendSeriesListByGenre(genreId: genreId)) + return api.requestPublisher( + .getRecommendSeriesListByGenre( + genreId: genreId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getRecommendSeriesByCreator(creatorId: Int) -> AnyPublisher { - return api.requestPublisher(.getRecommendSeriesByCreator(creatorId: creatorId)) + return api.requestPublisher( + .getRecommendSeriesByCreator( + creatorId: creatorId, + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getCompletedSeries(page: Int, size: Int) -> AnyPublisher { - return api.requestPublisher(.getCompletedSeries(page: page, size: size)) + return api.requestPublisher( + .getCompletedSeries( + isAdultContentVisible: UserDefaults.isAdultContentVisible(), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } }