콘텐츠 메인

- 남성향, 여성향 콘텐츠 설정 적용
- 19금 콘텐츠 보기 여부 설정 적용
This commit is contained in:
Yu Sung 2025-03-18 20:49:43 +09:00
parent cf5f798bb3
commit d5e1acb1c3
10 changed files with 262 additions and 72 deletions

View File

@ -22,6 +22,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
FirebaseApp.configure() FirebaseApp.configure()
Notifly.initialize(projectId: NOTIFLY_PROJECT_ID, username: NOTIFLY_USERNAME, password: NOTIFLY_PASSWORD) Notifly.initialize(projectId: NOTIFLY_PROJECT_ID, username: NOTIFLY_USERNAME, password: NOTIFLY_PASSWORD)
Messaging.messaging().delegate = self Messaging.messaging().delegate = self
setupAppsFlyer()
// For iOS 10 display notification (sent via APNS) // For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self UNUserNotificationCenter.current().delegate = self
@ -37,8 +38,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
AppEvents.shared.activateApp() AppEvents.shared.activateApp()
setupAppsFlyer()
return true return true
} }

View File

@ -29,7 +29,7 @@ enum ContentApi {
case getCurationList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) case getCurationList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
case donation(request: AudioContentDonationRequest) case donation(request: AudioContentDonationRequest)
case modifyComment(request: ModifyCommentRequest) 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 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 getAudioContentListByCurationId(curationId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentCurationViewModel.Sort)
case getContentRanking(page: Int, size: Int, sortType: String) 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 getAudioContentByTheme(themeId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentAllByThemeViewModel.Sort)
case generateUrl(contentId: Int) case generateUrl(contentId: Int)
case getContentMainHome case getContentMainHome(isAdultContentVisible: Bool, contentType: ContentType)
case getPopularContentByCreator(creatorId: Int) case getPopularContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getContentMainSeries case getContentMainSeries(isAdultContentVisible: Bool, contentType: ContentType)
case getRecommendSeriesListByGenre(genreId: Int) case getRecommendSeriesListByGenre(genreId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getRecommendSeriesByCreator(creatorId: Int) case getRecommendSeriesByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getCompletedSeries(page: Int, size: Int) 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 getContentMainNewContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType)
case getDailyContentRanking(sortType: String) case getDailyContentRanking(sortType: String, isAdultContentVisible: Bool, contentType: ContentType)
case getRecommendContentByTag(tag: String) case getRecommendContentByTag(tag: String, contentType: ContentType)
case getContentMainContentPopularContentByCreator(creatorId: Int) case getContentMainContentPopularContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getContentMainAlarm case getContentMainAlarm(isAdultContentVisible: Bool, contentType: ContentType)
case getContentMainAlarmAll(theme: String, page: Int, size: Int) case getContentMainAlarmAll(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
case getContentMainAsmr case getContentMainAsmr(isAdultContentVisible: Bool, contentType: ContentType)
case getPopularAsmrContentByCreator(creatorId: Int) case getPopularAsmrContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getContentMainReplay case getContentMainReplay(isAdultContentVisible: Bool, contentType: ContentType)
case getPopularReplayContentByCreator(creatorId: Int) case getPopularReplayContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
case getContentMainFree case getContentMainFree(isAdultContentVisible: Bool, contentType: ContentType)
case getIntroduceCreatorList(page: Int, size: Int) case getIntroduceCreatorList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
case getNewFreeContentOfTheme(theme: String, page: Int, size: Int) case getNewFreeContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int)
case getPopularFreeContentByCreator(creatorId: Int) case getPopularFreeContentByCreator(creatorId: Int, isAdultContentVisible: Bool, contentType: ContentType)
} }
extension ContentApi: TargetType { extension ContentApi: TargetType {
@ -337,8 +337,13 @@ extension ContentApi: TargetType {
case .modifyComment(let request): case .modifyComment(let request):
return .requestJSONEncodable(request) return .requestJSONEncodable(request)
case .getNewContentThemeList: case .getNewContentThemeList(let isAdultContentVisible, let contentType):
return .requestPlain 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): case .getNewContentAllOfTheme(let isFree, let theme, let isAdultContentVisible, let contentType, let page, let size):
let parameters = [ let parameters = [
@ -399,20 +404,45 @@ extension ContentApi: TargetType {
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getContentMainHome, .getContentMainSeries, .getContentMainContent, case .getContentMainHome(let isAdultContentVisible, let contentType),
.getContentMainAlarm, .getContentMainAsmr, .getContentMainReplay, .getContentMainFree: .getContentMainSeries(let isAdultContentVisible, let contentType),
return .requestPlain .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) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getPopularContentByCreator(let creatorId): case .getRecommendSeriesListByGenre(let genreId, let isAdultContentVisible, let contentType):
let parameters = ["creatorId": creatorId] let parameters = [
"genreId": genreId,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getRecommendSeriesByCreator(let creatorId): case .getPopularContentByCreator(let creatorId, let isAdultContentVisible, let contentType):
let parameters = ["creatorId": creatorId] 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) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getContentMainNewContentOfTheme(let theme, let isAdultContentVisible, let contentType): case .getContentMainNewContentOfTheme(let theme, let isAdultContentVisible, let contentType):
@ -423,39 +453,77 @@ extension ContentApi: TargetType {
] as [String : Any] ] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getDailyContentRanking(let sortType): case .getDailyContentRanking(let sortType, let isAdultContentVisible, let contentType):
let parameters = ["sort-type": sortType] let parameters = [
"sort-type": sortType,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getRecommendContentByTag(let tag): case .getRecommendContentByTag(let tag, let contentType):
let parameters = ["tag": tag] let parameters = [
"tag": tag,
"contentType": contentType
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getContentMainContentPopularContentByCreator(let creatorId): case .getContentMainContentPopularContentByCreator(let creatorId, let isAdultContentVisible, let contentType):
let parameters = ["creatorId": creatorId] let parameters = [
"creatorId": creatorId,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) 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 = [ let parameters = [
"theme": theme, "theme": theme,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType,
"page": page - 1, "page": page - 1,
"size": size "size": size
] as [String : Any] ] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
case .getIntroduceCreatorList(let page, let size): case .getContentMainAlarmAll(let theme, let isAdultContentVisible, let contentType, 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):
let parameters = [ let parameters = [
"theme": theme,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType,
"page": page - 1, "page": page - 1,
"size": size "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) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
} }
} }

View File

@ -109,7 +109,12 @@ final class ContentRepository {
} }
func getNewContentThemeList() -> AnyPublisher<Response, MoyaError> { func getNewContentThemeList() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getNewContentAllOfTheme(isFree: Bool, theme: String, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {

View File

@ -15,10 +15,23 @@ final class ContentMainTabAlarmRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainAlarm() -> AnyPublisher<Response, MoyaError> { func getContentMainAlarm() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getContentMainAlarmAll(theme: String, page: Int = 1, size: Int = 10) -> AnyPublisher<Response, MoyaError> {
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
)
)
} }
} }

View File

@ -15,10 +15,21 @@ final class ContentMainTabAsmrRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainAsmr() -> AnyPublisher<Response, MoyaError> { func getContentMainAsmr() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getPopularContentByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getPopularAsmrContentByCreator(creatorId: creatorId)) return api.requestPublisher(
.getPopularAsmrContentByCreator(
creatorId: creatorId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
} }
} }

View File

@ -15,7 +15,12 @@ final class ContentMainTabContentRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainContent() -> AnyPublisher<Response, MoyaError> { func getContentMainContent() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getNewContentOfTheme(theme: String) -> AnyPublisher<Response, MoyaError> {
@ -29,14 +34,31 @@ final class ContentMainTabContentRepository {
} }
func getContentRanking(sortType: String) -> AnyPublisher<Response, MoyaError> { func getContentRanking(sortType: String) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getRecommendContentByTag(tag: String) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getPopularContentByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getContentMainContentPopularContentByCreator(creatorId: creatorId)) return api.requestPublisher(
.getContentMainContentPopularContentByCreator(
creatorId: creatorId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
} }
} }

View File

@ -15,18 +15,44 @@ final class ContentMainTabFreeRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainFree() -> AnyPublisher<Response, MoyaError> { func getContentMainFree() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getIntroduceCreatorList(page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getNewContentOfTheme(theme: String, page: Int = 1, size: Int = 20) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getPopularContentByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getPopularFreeContentByCreator(creatorId: creatorId)) return api.requestPublisher(
.getPopularFreeContentByCreator(
creatorId: creatorId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
} }
} }

View File

@ -14,10 +14,21 @@ class ContentMainTabHomeRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainHome() -> AnyPublisher<Response, MoyaError> { func getContentMainHome() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getPopularContentByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getPopularContentByCreator(creatorId: creatorId)) return api.requestPublisher(
.getPopularContentByCreator(
creatorId: creatorId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
} }
} }

View File

@ -15,10 +15,21 @@ final class ContentMainTabReplayRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainReplay() -> AnyPublisher<Response, MoyaError> { func getContentMainReplay() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getPopularContentByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getPopularReplayContentByCreator(creatorId: creatorId)) return api.requestPublisher(
.getPopularReplayContentByCreator(
creatorId: creatorId,
isAdultContentVisible: UserDefaults.isAdultContentVisible(),
contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL
)
)
} }
} }

View File

@ -14,18 +14,42 @@ final class ContentMainTabSeriesRepository {
private let api = MoyaProvider<ContentApi>() private let api = MoyaProvider<ContentApi>()
func getContentMainSeries() -> AnyPublisher<Response, MoyaError> { func getContentMainSeries() -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getRecommendSeriesListByGenre(genreId: Int) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getRecommendSeriesByCreator(creatorId: Int) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getCompletedSeries(page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
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
)
)
} }
} }