diff --git a/SodaLive/Sources/Content/ContentApi.swift b/SodaLive/Sources/Content/ContentApi.swift index de343ff..a35f7cf 100644 --- a/SodaLive/Sources/Content/ContentApi.swift +++ b/SodaLive/Sources/Content/ContentApi.swift @@ -25,12 +25,12 @@ enum ContentApi { case getNewContentUploadCreatorList case getMainBannerList case getMainOrderList - case getNewContentOfTheme(theme: String) - case getCurationList(page: Int, size: Int) + case getNewContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType) + case getCurationList(isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) case donation(request: AudioContentDonationRequest) case modifyComment(request: ModifyCommentRequest) case getNewContentThemeList - case getNewContentAllOfTheme(theme: String, page: Int, size: Int) + case getNewContentAllOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) case getAudioContentListByCurationId(curationId: Int, page: Int, size: Int, sort: ContentCurationViewModel.Sort) case getContentRanking(page: Int, size: Int, sortType: String) case getContentRankingSortType @@ -221,8 +221,12 @@ extension ContentApi: TargetType { case .deleteAudioContent: return .requestPlain - case .getNewContentOfTheme(let theme): - let parameters = ["theme": theme] as [String : Any] + case .getNewContentOfTheme(let theme, let isAdultContentVisible, let contentType): + let parameters = [ + "theme": theme, + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType + ] as [String : Any] return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) @@ -235,9 +239,11 @@ extension ContentApi: TargetType { case .getNewContentThemeList: return .requestPlain - case .getNewContentAllOfTheme(let theme, let page, let size): + case .getNewContentAllOfTheme(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] @@ -265,8 +271,10 @@ extension ContentApi: TargetType { case .getContentRankingSortType: return .requestPlain - case .getCurationList(let page, let size): + case .getCurationList(let isAdultContentVisible, let contentType, let page, let size): let parameters = [ + "isAdultContentVisible": isAdultContentVisible, + "contentType": contentType, "page": page - 1, "size": size ] as [String : Any] diff --git a/SodaLive/Sources/Content/ContentRepository.swift b/SodaLive/Sources/Content/ContentRepository.swift index 1000fb2..a00299c 100644 --- a/SodaLive/Sources/Content/ContentRepository.swift +++ b/SodaLive/Sources/Content/ContentRepository.swift @@ -79,11 +79,24 @@ final class ContentRepository { } func getNewContentOfTheme(theme: String) -> AnyPublisher { - return api.requestPublisher(.getNewContentOfTheme(theme: theme)) + return api.requestPublisher( + .getNewContentOfTheme( + theme: theme, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL + ) + ) } func getCurationList(page: Int, size: Int) -> AnyPublisher { - return api.requestPublisher(.getCurationList(page: page, size: size)) + return api.requestPublisher( + .getCurationList( + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } func donation(contentId: Int, can: Int, comment: String) -> AnyPublisher { @@ -99,7 +112,15 @@ final class ContentRepository { } func getNewContentAllOfTheme(theme: String, page: Int, size: Int) -> AnyPublisher { - return api.requestPublisher(.getNewContentAllOfTheme(theme: theme, page: page, size: size)) + return api.requestPublisher( + .getNewContentAllOfTheme( + theme: theme, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), + contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, + page: page, + size: size + ) + ) } func getAudioContentListByCurationId(curationId: Int, page: Int, size: Int, sort: ContentCurationViewModel.Sort) -> AnyPublisher { diff --git a/SodaLive/Sources/Live/LiveViewModel.swift b/SodaLive/Sources/Live/LiveViewModel.swift index 919ad32..843d43f 100644 --- a/SodaLive/Sources/Live/LiveViewModel.swift +++ b/SodaLive/Sources/Live/LiveViewModel.swift @@ -99,6 +99,7 @@ final class LiveViewModel: ObservableObject { timezone: TimeZone.current.identifier, dateString: nil, status: .NOW, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), page: 1, size: 10 ) @@ -109,6 +110,7 @@ final class LiveViewModel: ObservableObject { timezone: TimeZone.current.identifier, dateString: nil, status: .RESERVATION, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), page: 1, size: 10 ) @@ -287,6 +289,7 @@ final class LiveViewModel: ObservableObject { timezone: TimeZone.current.identifier, dateString: nil, status: .NOW, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), page: page, size: pageSize ) @@ -344,6 +347,7 @@ final class LiveViewModel: ObservableObject { timezone: TimeZone.current.identifier, dateString: selectedDateString, status: .RESERVATION, + isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible), page: page, size: pageSize ) diff --git a/SodaLive/Sources/Live/Room/GetRoomListRequest.swift b/SodaLive/Sources/Live/Room/GetRoomListRequest.swift index bea5468..e847a81 100644 --- a/SodaLive/Sources/Live/Room/GetRoomListRequest.swift +++ b/SodaLive/Sources/Live/Room/GetRoomListRequest.swift @@ -11,6 +11,7 @@ struct GetRoomListRequest { let timezone: String let dateString: String? let status: LiveRoomStatus + let isAdultContentVisible: Bool let page: Int let size: Int }