라이브, 콘텐츠 메인 - 새로운 콘텐츠, 큐레이션

- 민감한 콘텐츠(19금) 설정 추가
This commit is contained in:
Yu Sung 2024-10-11 12:18:38 +09:00
parent a2b8a105fe
commit 46df6864b0
4 changed files with 44 additions and 10 deletions

View File

@ -25,12 +25,12 @@ enum ContentApi {
case getNewContentUploadCreatorList case getNewContentUploadCreatorList
case getMainBannerList case getMainBannerList
case getMainOrderList case getMainOrderList
case getNewContentOfTheme(theme: String) case getNewContentOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType)
case getCurationList(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
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 getAudioContentListByCurationId(curationId: Int, page: Int, size: Int, sort: ContentCurationViewModel.Sort)
case getContentRanking(page: Int, size: Int, sortType: String) case getContentRanking(page: Int, size: Int, sortType: String)
case getContentRankingSortType case getContentRankingSortType
@ -221,8 +221,12 @@ extension ContentApi: TargetType {
case .deleteAudioContent: case .deleteAudioContent:
return .requestPlain return .requestPlain
case .getNewContentOfTheme(let theme): case .getNewContentOfTheme(let theme, let isAdultContentVisible, let contentType):
let parameters = ["theme": theme] as [String : Any] let parameters = [
"theme": theme,
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType
] as [String : Any]
return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString) return .requestParameters(parameters: parameters, encoding: URLEncoding.queryString)
@ -235,9 +239,11 @@ extension ContentApi: TargetType {
case .getNewContentThemeList: case .getNewContentThemeList:
return .requestPlain return .requestPlain
case .getNewContentAllOfTheme(let theme, let page, let size): case .getNewContentAllOfTheme(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]
@ -265,8 +271,10 @@ extension ContentApi: TargetType {
case .getContentRankingSortType: case .getContentRankingSortType:
return .requestPlain return .requestPlain
case .getCurationList(let page, let size): case .getCurationList(let isAdultContentVisible, let contentType, let page, let size):
let parameters = [ let parameters = [
"isAdultContentVisible": isAdultContentVisible,
"contentType": contentType,
"page": page - 1, "page": page - 1,
"size": size "size": size
] as [String : Any] ] as [String : Any]

View File

@ -79,11 +79,24 @@ final class ContentRepository {
} }
func getNewContentOfTheme(theme: String) -> AnyPublisher<Response, MoyaError> { func getNewContentOfTheme(theme: String) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getCurationList(page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func donation(contentId: Int, can: Int, comment: String) -> AnyPublisher<Response, MoyaError> {
@ -99,7 +112,15 @@ final class ContentRepository {
} }
func getNewContentAllOfTheme(theme: String, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> { func getNewContentAllOfTheme(theme: String, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> {
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<Response, MoyaError> { func getAudioContentListByCurationId(curationId: Int, page: Int, size: Int, sort: ContentCurationViewModel.Sort) -> AnyPublisher<Response, MoyaError> {

View File

@ -99,6 +99,7 @@ final class LiveViewModel: ObservableObject {
timezone: TimeZone.current.identifier, timezone: TimeZone.current.identifier,
dateString: nil, dateString: nil,
status: .NOW, status: .NOW,
isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible),
page: 1, page: 1,
size: 10 size: 10
) )
@ -109,6 +110,7 @@ final class LiveViewModel: ObservableObject {
timezone: TimeZone.current.identifier, timezone: TimeZone.current.identifier,
dateString: nil, dateString: nil,
status: .RESERVATION, status: .RESERVATION,
isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible),
page: 1, page: 1,
size: 10 size: 10
) )
@ -287,6 +289,7 @@ final class LiveViewModel: ObservableObject {
timezone: TimeZone.current.identifier, timezone: TimeZone.current.identifier,
dateString: nil, dateString: nil,
status: .NOW, status: .NOW,
isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible),
page: page, page: page,
size: pageSize size: pageSize
) )
@ -344,6 +347,7 @@ final class LiveViewModel: ObservableObject {
timezone: TimeZone.current.identifier, timezone: TimeZone.current.identifier,
dateString: selectedDateString, dateString: selectedDateString,
status: .RESERVATION, status: .RESERVATION,
isAdultContentVisible: UserDefaults.bool(forKey: .isAdultContentVisible),
page: page, page: page,
size: pageSize size: pageSize
) )

View File

@ -11,6 +11,7 @@ struct GetRoomListRequest {
let timezone: String let timezone: String
let dateString: String? let dateString: String?
let status: LiveRoomStatus let status: LiveRoomStatus
let isAdultContentVisible: Bool
let page: Int let page: Int
let size: Int let size: Int
} }