diff --git a/Poppool/Poppool/DataLayer/Network/API/HomeAPI/HomeAPIEndpoint.swift b/Poppool/Poppool/DataLayer/Network/API/HomeAPI/HomeAPIEndpoint.swift index accb193d..1d38114f 100644 --- a/Poppool/Poppool/DataLayer/Network/API/HomeAPI/HomeAPIEndpoint.swift +++ b/Poppool/Poppool/DataLayer/Network/API/HomeAPI/HomeAPIEndpoint.swift @@ -1,16 +1,9 @@ -// -// HomeRepositoryImpl.swift -// Poppool -// -// Created by Porori on 11/26/24. -// - import Foundation struct HomeAPIEndpoint { static func fetchHome( - request: SortedRequestDTO + request: HomeSortedRequestDTO ) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, @@ -21,7 +14,7 @@ struct HomeAPIEndpoint { } static func fetchPopularPopUp( - request: SortedRequestDTO + request: HomeSortedRequestDTO ) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, @@ -32,7 +25,7 @@ struct HomeAPIEndpoint { } static func fetchNewPopUp( - request: SortedRequestDTO + request: HomeSortedRequestDTO ) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, @@ -43,7 +36,7 @@ struct HomeAPIEndpoint { } static func fetchCustomPopUp( - request: SortedRequestDTO + request: HomeSortedRequestDTO ) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, diff --git a/Poppool/Poppool/DataLayer/Network/API/HomeAPI/RequestDTO/HomeSortedRequestDTO.swift b/Poppool/Poppool/DataLayer/Network/API/HomeAPI/RequestDTO/HomeSortedRequestDTO.swift new file mode 100644 index 00000000..1f7b5f72 --- /dev/null +++ b/Poppool/Poppool/DataLayer/Network/API/HomeAPI/RequestDTO/HomeSortedRequestDTO.swift @@ -0,0 +1,7 @@ +import Foundation + +struct HomeSortedRequestDTO: Encodable { + var page: Int32? + var size: Int32? + var sort: String? +} diff --git a/Poppool/Poppool/DataLayer/Network/API/SortedRequestDTO.swift b/Poppool/Poppool/DataLayer/Network/API/SortedRequestDTO.swift deleted file mode 100644 index 14ecf6d6..00000000 --- a/Poppool/Poppool/DataLayer/Network/API/SortedRequestDTO.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// SortedRequestDTO.swift -// Poppool -// -// Created by SeoJunYoung on 11/28/24. -// - -// TODO: SortedRequestDTO를 HOME, User로 나눠서 폴더에 넣어주기 - -import Foundation - -struct SortedRequestDTO: Encodable { - var page: Int32? - var size: Int32? - var sort: String? -} diff --git a/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/GetBlockUserListRequestDTO.swift b/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/GetBlockUserListRequestDTO.swift deleted file mode 100644 index a06c73c1..00000000 --- a/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/GetBlockUserListRequestDTO.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// GetBlockUserListRequestDTO.swift -// Poppool -// -// Created by SeoJunYoung on 1/12/25. -// - -import Foundation - -struct GetBlockUserListRequestDTO: Encodable { - var page: Int32? - var size: Int32? - var sort: String? -} diff --git a/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/UserSortedRequestDTO.swift b/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/UserSortedRequestDTO.swift new file mode 100644 index 00000000..aee72ce5 --- /dev/null +++ b/Poppool/Poppool/DataLayer/Network/API/UserAPI/RequesetDTO/UserSortedRequestDTO.swift @@ -0,0 +1,7 @@ +import Foundation + +struct UserSortedRequestDTO: Encodable { + var page: Int32? + var size: Int32? + var sort: String? +} diff --git a/Poppool/Poppool/DataLayer/Network/API/UserAPI/UserAPIEndPoint.swift b/Poppool/Poppool/DataLayer/Network/API/UserAPI/UserAPIEndPoint.swift index 032c756e..eca9ac14 100644 --- a/Poppool/Poppool/DataLayer/Network/API/UserAPI/UserAPIEndPoint.swift +++ b/Poppool/Poppool/DataLayer/Network/API/UserAPI/UserAPIEndPoint.swift @@ -142,7 +142,7 @@ struct UserAPIEndPoint { ) } - static func getMyCommentedPopUp(request: SortedRequestDTO) -> Endpoint { + static func getMyCommentedPopUp(request: UserSortedRequestDTO) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, path: "/users/commented/popup", @@ -151,7 +151,7 @@ struct UserAPIEndPoint { ) } - static func getBlockUserList(request: GetBlockUserListRequestDTO) -> Endpoint { + static func getBlockUserList(request: UserSortedRequestDTO) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, path: "/users/blocked", @@ -176,7 +176,7 @@ struct UserAPIEndPoint { ) } - static func getRecentPopUp(request: SortedRequestDTO) -> Endpoint { + static func getRecentPopUp(request: UserSortedRequestDTO) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, path: "/users/recent-popupstores", @@ -185,7 +185,7 @@ struct UserAPIEndPoint { ) } - static func getBookmarkPopUp(request: SortedRequestDTO) -> Endpoint { + static func getBookmarkPopUp(request: UserSortedRequestDTO) -> Endpoint { return Endpoint( baseURL: Secrets.popPoolBaseURL, path: "/users/bookmark-popupstores", diff --git a/Poppool/Poppool/DataLayer/RepositoryImpl/HomeAPIRepositoryImpl.swift b/Poppool/Poppool/DataLayer/RepositoryImpl/HomeAPIRepositoryImpl.swift index 89ef1e10..bd4d02e2 100644 --- a/Poppool/Poppool/DataLayer/RepositoryImpl/HomeAPIRepositoryImpl.swift +++ b/Poppool/Poppool/DataLayer/RepositoryImpl/HomeAPIRepositoryImpl.swift @@ -11,22 +11,26 @@ final class HomeAPIRepositoryImpl: HomeAPIRepository { self.provider = provider } - func fetchHome(request: SortedRequestDTO) -> Observable { + func fetchHome(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = HomeSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = HomeAPIEndpoint.fetchHome(request: request) return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map({ $0.toDomain() }) } - func fetchCustomPopUp(request: SortedRequestDTO) -> Observable { + func fetchCustomPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = HomeSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = HomeAPIEndpoint.fetchCustomPopUp(request: request) return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map({ $0.toDomain() }) } - func fetchNewPopUp(request: SortedRequestDTO) -> Observable { + func fetchNewPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = HomeSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = HomeAPIEndpoint.fetchNewPopUp(request: request) return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map({ $0.toDomain() }) } - func fetchPopularPopUp(request: SortedRequestDTO) -> Observable { + func fetchPopularPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = HomeSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = HomeAPIEndpoint.fetchPopularPopUp(request: request) return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map({ $0.toDomain() }) } diff --git a/Poppool/Poppool/DataLayer/RepositoryImpl/PopUpAPIRepositoryImpl.swift b/Poppool/Poppool/DataLayer/RepositoryImpl/PopUpAPIRepositoryImpl.swift index b20a108a..ab8e22d6 100644 --- a/Poppool/Poppool/DataLayer/RepositoryImpl/PopUpAPIRepositoryImpl.swift +++ b/Poppool/Poppool/DataLayer/RepositoryImpl/PopUpAPIRepositoryImpl.swift @@ -11,33 +11,60 @@ final class PopUpAPIRepositoryImpl: PopUpAPIRepository { self.provider = provider } - func postBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable { + func postBookmarkPopUp(popUpStoreId: Int64) -> Completable { + let request = PostBookmarkPopUpRequestDTO(popUpStoreId: popUpStoreId) let endPoint = UserAPIEndPoint.postBookmarkPopUp(request: request) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func getClosePopUpList(request: GetSearchPopUpListRequestDTO) -> Observable { + func getClosePopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable { + let request = GetSearchPopUpListRequestDTO(categories: categories, page: page, size: size, sort: sort, query: query, sortCode: sortCode) let endPoint = PopUpAPIEndPoint.getClosePopUpList(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getOpenPopUpList(request: GetSearchPopUpListRequestDTO) -> Observable { + func getOpenPopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable { + let request = GetSearchPopUpListRequestDTO(categories: categories, page: page, size: size, sort: sort, query: query, sortCode: sortCode) let endPoint = PopUpAPIEndPoint.getOpenPopUpList(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getSearchPopUpList(request: GetSearchPopUpListRequestDTO) -> Observable { + func getSearchPopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable { + let request = GetSearchPopUpListRequestDTO(categories: categories, page: page, size: size, sort: sort, query: query, sortCode: sortCode) let endPoint = PopUpAPIEndPoint.getSearchPopUpList(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getPopUpDetail(request: GetPopUpDetailRequestDTO) -> Observable { + func getPopUpDetail(commentType: String?, popUpStoreId: Int64, viewCountYn: Bool?) -> Observable { + let request = GetPopUpDetailRequestDTO(commentType: commentType, popUpStoreId: popUpStoreId, viewCountYn: viewCountYn) let endPoint = PopUpAPIEndPoint.getPopUpDetail(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getPopUpComment(request: GetPopUpCommentRequestDTO) -> Observable { + func getPopUpComment(commentType: String?, page: Int32?, size: Int32?, sort: String?, popUpStoreId: Int64) -> Observable { + let request = GetPopUpCommentRequestDTO(commentType: commentType, page: page, size: size, sort: sort, popUpStoreId: popUpStoreId) let endPoint = PopUpAPIEndPoint.getPopUpComment(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } } diff --git a/Poppool/Poppool/DataLayer/RepositoryImpl/UserAPIRepositoryImpl.swift b/Poppool/Poppool/DataLayer/RepositoryImpl/UserAPIRepositoryImpl.swift index a146c460..c8d3c00b 100644 --- a/Poppool/Poppool/DataLayer/RepositoryImpl/UserAPIRepositoryImpl.swift +++ b/Poppool/Poppool/DataLayer/RepositoryImpl/UserAPIRepositoryImpl.swift @@ -11,44 +11,51 @@ final class UserAPIRepositoryImpl: UserAPIRepository { self.provider = provider } - func postBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.postBookmarkPopUp(request: request) + func postBookmarkPopUp(popUpStoreId: Int64) -> Completable { + let endPoint = UserAPIEndPoint.postBookmarkPopUp(request: .init(popUpStoreId: popUpStoreId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func deleteBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.deleteBookmarkPopUp(request: request) + func deleteBookmarkPopUp(popUpStoreId: Int64) -> Completable { + let endPoint = UserAPIEndPoint.deleteBookmarkPopUp(request: .init(popUpStoreId: popUpStoreId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func postCommentLike(request: CommentLikeRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.postCommentLike(request: request) + func postCommentLike(commentId: Int64) -> Completable { + let endPoint = UserAPIEndPoint.postCommentLike(request: .init(commentId: commentId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func deleteCommentLike(request: CommentLikeRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.deleteCommentLike(request: request) + func deleteCommentLike(commentId: Int64) -> Completable { + let endPoint = UserAPIEndPoint.deleteCommentLike(request: .init(commentId: commentId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func postUserBlock(request: PostUserBlockRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.postUserBlock(request: request) + func postUserBlock(blockedUserId: String?) -> Completable { + let endPoint = UserAPIEndPoint.postUserBlock(request: .init(blockedUserId: blockedUserId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func deleteUserBlock(request: PostUserBlockRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.deleteUserBlock(request: request) + func deleteUserBlock(blockedUserId: String?) -> Completable { + let endPoint = UserAPIEndPoint.deleteUserBlock(request: .init(blockedUserId: blockedUserId)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func getOtherUserCommentList(request: GetOtherUserCommentListRequestDTO) -> Observable { + func getOtherUserCommentList( + commenterId: String?, + commentType: String?, + page: Int32?, + size: Int32?, + sort: String? + ) -> Observable { + let request = GetOtherUserCommentListRequestDTO(commenterId: commenterId, commentType: commentType, page: page, size: size, sort: sort) let endPoint = UserAPIEndPoint.getOtherUserCommentPopUpList(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getMyPage() -> Observable { + func getMyPage() -> Observable { let endPoint = UserAPIEndPoint.getMyPage() - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } func postLogout() -> Completable { @@ -56,63 +63,87 @@ final class UserAPIRepositoryImpl: UserAPIRepository { return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func getWithdrawlList() -> Observable { + func getWithdrawlList() -> Observable { let endPoint = UserAPIEndPoint.getWithdrawlList() - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func postWithdrawl(request: PostWithdrawlListRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.postWithdrawl(request: request) + func postWithdrawl(list: [(Int64, String?)]) -> Completable { + let endPoint = UserAPIEndPoint.postWithdrawl(request: .init(checkedSurveyList: list.map { .init(id: $0.0, survey: $0.1)})) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func getMyProfile() -> Observable { + func getMyProfile() -> Observable { let endPoint = UserAPIEndPoint.getMyProfile() - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func putUserTailoredInfo(request: PutUserTailoredInfoRequestDTO) -> Completable { - let endPoint = UserAPIEndPoint.putUserTailoredInfo(request: request) + func putUserTailoredInfo(gender: String?, age: Int32) -> Completable { + let endPoint = UserAPIEndPoint.putUserTailoredInfo(request: .init(gender: gender, age: age)) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func putUserCategory(request: PutUserCategoryRequestDTO) -> Completable { + func putUserCategory( + interestCategoriesToAdd: [Int64], + interestCategoriesToDelete: [Int64], + interestCategoriesToKeep: [Int64] + ) -> Completable { + let request = PutUserCategoryRequestDTO( + interestCategoriesToAdd: interestCategoriesToAdd, + interestCategoriesToDelete: interestCategoriesToDelete, + interestCategoriesToKeep: interestCategoriesToKeep + ) let endPoint = UserAPIEndPoint.putUserCategory(request: request) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func putUserProfile(request: PutUserProfileRequestDTO) -> Completable { + func putUserProfile( + profileImageUrl: String?, + nickname: String?, + email: String?, + instagramId: String?, + intro: String? + ) -> Completable { + let request = PutUserProfileRequestDTO(profileImageUrl: profileImageUrl, nickname: nickname, email: email, instagramId: instagramId, intro: intro) let endPoint = UserAPIEndPoint.putUserProfile(request: request) return provider.request(with: endPoint, interceptor: tokenInterceptor) } - func getMyCommentedPopUp(request: SortedRequestDTO) -> Observable { + func getMyCommentedPopUp( + page: Int32?, + size: Int32?, + sort: String? + ) -> Observable { + let request = UserSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = UserAPIEndPoint.getMyCommentedPopUp(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getBlockUserList(request: GetBlockUserListRequestDTO) -> Observable { + func getBlockUserList(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = UserSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = UserAPIEndPoint.getBlockUserList(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getNoticeList() -> Observable { + func getNoticeList() -> Observable { let endPoint = UserAPIEndPoint.getNoticeList() - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getNoticeDetail(noticeID: Int64) -> Observable { + func getNoticeDetail(noticeID: Int64) -> Observable { let endPoint = UserAPIEndPoint.getNoticeDetail(noticeID: noticeID) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getRecentPopUp(request: SortedRequestDTO) -> Observable { + func getRecentPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = UserSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = UserAPIEndPoint.getRecentPopUp(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } - func getBookmarkPopUp(request: SortedRequestDTO) -> Observable { + func getBookmarkPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { + let request = UserSortedRequestDTO(page: page, size: size, sort: sort) let endPoint = UserAPIEndPoint.getBookmarkPopUp(request: request) - return provider.requestData(with: endPoint, interceptor: tokenInterceptor) + return provider.requestData(with: endPoint, interceptor: tokenInterceptor).map { $0.toDomain() } } } diff --git a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/HomeAPIUseCaseImpl.swift b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/HomeAPIUseCaseImpl.swift index cd665ca5..2251ba97 100644 --- a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/HomeAPIUseCaseImpl.swift +++ b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/HomeAPIUseCaseImpl.swift @@ -15,7 +15,7 @@ final class HomeAPIUseCaseImpl: HomeAPIUseCase { size: Int32?, sort: String? ) -> Observable { - return repository.fetchHome(request: .init(page: page, size: size, sort: sort)) + return repository.fetchHome(page: page, size: size, sort: sort) } func fetchCustomPopUp( @@ -23,7 +23,7 @@ final class HomeAPIUseCaseImpl: HomeAPIUseCase { size: Int32?, sort: String? ) -> Observable { - return repository.fetchCustomPopUp(request: .init(page: page, size: size, sort: sort)) + return repository.fetchCustomPopUp(page: page, size: size, sort: sort) } func fetchNewPopUp( @@ -31,7 +31,7 @@ final class HomeAPIUseCaseImpl: HomeAPIUseCase { size: Int32?, sort: String? ) -> Observable { - return repository.fetchNewPopUp(request: .init(page: page, size: size, sort: sort)) + return repository.fetchNewPopUp(page: page, size: size, sort: sort) } func fetchPopularPopUp( @@ -39,6 +39,6 @@ final class HomeAPIUseCaseImpl: HomeAPIUseCase { size: Int32?, sort: String? ) -> Observable { - return repository.fetchPopularPopUp(request: .init(page: page, size: size, sort: sort)) + return repository.fetchPopularPopUp(page: page, size: size, sort: sort) } } diff --git a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/PopUpAPIUseCaseImpl.swift b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/PopUpAPIUseCaseImpl.swift index 8049526a..c199fddb 100644 --- a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/PopUpAPIUseCaseImpl.swift +++ b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/PopUpAPIUseCaseImpl.swift @@ -15,24 +15,22 @@ final class PopUpAPIUseCaseImpl: PopUpAPIUseCase { if !categories.isEmpty { categoryString = categories.map { String($0) + "," }.reduce("", +) } - let request = GetSearchPopUpListRequestDTO(categories: categoryString, page: page, size: size, sortCode: sort) if isOpen { - return repository.getOpenPopUpList(request: request).map { $0.toDomain() } + return repository.getOpenPopUpList(categories: categoryString, page: page, size: size, sort: nil, query: nil, sortCode: sort) } else { - return repository.getClosePopUpList(request: request).map { $0.toDomain() } + return repository.getClosePopUpList(categories: categoryString, page: page, size: size, sort: nil, query: nil, sortCode: sort) } } func getSearchPopUpList(query: String?) -> Observable { - return repository.getSearchPopUpList(request: .init(query: query)).map { $0.toDomain() } + return repository.getSearchPopUpList(categories: nil, page: nil, size: nil, sort: nil, query: query, sortCode: nil) } func getPopUpDetail(commentType: String?, popUpStoredId: Int64, isViewCount: Bool? = true) -> Observable { - return repository.getPopUpDetail(request: .init(commentType: commentType, popUpStoreId: popUpStoredId, viewCountYn: isViewCount)).map { $0.toDomain() } + return repository.getPopUpDetail(commentType: commentType, popUpStoreId: popUpStoredId, viewCountYn: isViewCount) } func getPopUpComment(commentType: String?, page: Int32?, size: Int32?, sort: String?, popUpStoreId: Int64) -> Observable { - let request: GetPopUpCommentRequestDTO = .init(commentType: commentType, page: page, size: size, sort: sort, popUpStoreId: popUpStoreId) - return repository.getPopUpComment(request: request).map { $0.toDomain() } + return repository.getPopUpComment(commentType: commentType, page: page, size: size, sort: sort, popUpStoreId: popUpStoreId) } } diff --git a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/SignUpAPIUseCaseImpl.swift b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/SignUpAPIUseCaseImpl.swift index 9f91f723..78c69f75 100644 --- a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/SignUpAPIUseCaseImpl.swift +++ b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/SignUpAPIUseCaseImpl.swift @@ -8,7 +8,7 @@ final class SignUpAPIUseCaseImpl: SignUpAPIUseCase { init(repository: SignUpRepository) { self.repository = repository } - + func trySignUp( nickName: String, gender: String, @@ -28,7 +28,7 @@ final class SignUpAPIUseCaseImpl: SignUpAPIUseCase { appleAuthorizationCode: appleAuthorizationCode ) } - + func checkNickName(nickName: String) -> Observable { return repository.checkNickName(nickName: nickName) } diff --git a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/UserAPIUseCaseImpl.swift b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/UserAPIUseCaseImpl.swift index 55a16028..d13ea254 100644 --- a/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/UserAPIUseCaseImpl.swift +++ b/Poppool/Poppool/DomainLayer/Domain/UseCaseImpl/UserAPIUseCaseImpl.swift @@ -10,27 +10,27 @@ final class UserAPIUseCaseImpl: UserAPIUseCase { } func postBookmarkPopUp(popUpID: Int64) -> Completable { - return repository.postBookmarkPopUp(request: .init(popUpStoreId: popUpID)) + return repository.postBookmarkPopUp(popUpStoreId: popUpID) } func deleteBookmarkPopUp(popUpID: Int64) -> Completable { - return repository.deleteBookmarkPopUp(request: .init(popUpStoreId: popUpID)) + return repository.deleteBookmarkPopUp(popUpStoreId: popUpID) } func postCommentLike(commentId: Int64) -> Completable { - return repository.postCommentLike(request: .init(commentId: commentId)) + return repository.postCommentLike(commentId: commentId) } func deleteCommentLike(commentId: Int64) -> Completable { - return repository.deleteCommentLike(request: .init(commentId: commentId)) + return repository.deleteCommentLike(commentId: commentId) } func postUserBlock(blockedUserId: String?) -> Completable { - return repository.postUserBlock(request: .init(blockedUserId: blockedUserId)) + return repository.postUserBlock(blockedUserId: blockedUserId) } func deleteUserBlock(blockedUserId: String?) -> Completable { - return repository.deleteUserBlock(request: .init(blockedUserId: blockedUserId)) + return repository.deleteUserBlock(blockedUserId: blockedUserId) } func getOtherUserCommentedPopUpList( @@ -41,18 +41,16 @@ final class UserAPIUseCaseImpl: UserAPIUseCase { sort: String? ) -> Observable { return repository.getOtherUserCommentList( - request: .init( - commenterId: commenterId, - commentType: commentType, - page: page, - size: size, - sort: sort) + commenterId: commenterId, + commentType: commentType, + page: page, + size: size, + sort: sort ) - .map { $0.toDomain() } } func getMyPage() -> Observable { - return repository.getMyPage().map { $0.toDomain() } + return repository.getMyPage() } func postLogout() -> Completable { @@ -60,19 +58,19 @@ final class UserAPIUseCaseImpl: UserAPIUseCase { } func getWithdrawlList() -> Observable { - return repository.getWithdrawlList().map { $0.toDomain() } + return repository.getWithdrawlList() } func postWithdrawl(surveyList: [GetWithdrawlListDataResponse]) -> Completable { - return repository.postWithdrawl(request: .init(checkedSurveyList: surveyList.map { .init(id: $0.id, survey: $0.survey)})) + return repository.postWithdrawl(list: surveyList.map { ($0.id, $0.survey)}) } func getMyProfile() -> Observable { - return repository.getMyProfile().map { $0.toDomain() } + return repository.getMyProfile() } func putUserTailoredInfo(gender: String?, age: Int32) -> Completable { - return repository.putUserTailoredInfo(request: .init(gender: gender, age: age)) + return repository.putUserTailoredInfo(gender: gender, age: age) } func putUserCategory( @@ -81,39 +79,37 @@ final class UserAPIUseCaseImpl: UserAPIUseCase { interestCategoriesToKeep: [Int64] ) -> Completable { return repository.putUserCategory( - request: .init( - interestCategoriesToAdd: interestCategoriesToAdd, - interestCategoriesToDelete: interestCategoriesToDelete, - interestCategoriesToKeep: interestCategoriesToKeep - ) + interestCategoriesToAdd: interestCategoriesToAdd, + interestCategoriesToDelete: interestCategoriesToDelete, + interestCategoriesToKeep: interestCategoriesToKeep ) } func putUserProfile(profileImageUrl: String?, nickname: String?, email: String?, instagramId: String?, intro: String?) -> Completable { - return repository.putUserProfile(request: .init(profileImageUrl: profileImageUrl, nickname: nickname, email: email, instagramId: instagramId, intro: intro)) + return repository.putUserProfile(profileImageUrl: profileImageUrl, nickname: nickname, email: email, instagramId: instagramId, intro: intro) } func getMyCommentedPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { - return repository.getMyCommentedPopUp(request: .init(page: page, size: size, sort: sort)).map { $0.toDomain() } + return repository.getMyCommentedPopUp(page: page, size: size, sort: sort) } func getBlockUserList(page: Int32?, size: Int32?, sort: String?) -> Observable { - return repository.getBlockUserList(request: .init(page: page, size: size, sort: sort)).map { $0.toDomain() } + return repository.getBlockUserList(page: page, size: size, sort: sort) } func getNoticeList() -> Observable { - return repository.getNoticeList().map { $0.toDomain() } + return repository.getNoticeList() } func getNoticeDetail(noticeID: Int64) -> Observable { - return repository.getNoticeDetail(noticeID: noticeID).map { $0.toDomain() } + return repository.getNoticeDetail(noticeID: noticeID) } func getRecentPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { - return repository.getRecentPopUp(request: .init(page: page, size: size, sort: sort)).map { $0.toDomain() } + return repository.getRecentPopUp(page: page, size: size, sort: sort) } func getBookmarkPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable { - return repository.getBookmarkPopUp(request: .init(page: page, size: size, sort: sort)).map { $0.toDomain() } + return repository.getBookmarkPopUp(page: page, size: size, sort: sort) } } diff --git a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/HomeAPIRepository.swift b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/HomeAPIRepository.swift index 2c6082ed..4b7f0bb1 100644 --- a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/HomeAPIRepository.swift +++ b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/HomeAPIRepository.swift @@ -3,8 +3,8 @@ import Foundation import RxSwift protocol HomeAPIRepository { - func fetchHome(request: SortedRequestDTO) -> Observable - func fetchCustomPopUp(request: SortedRequestDTO) -> Observable - func fetchNewPopUp(request: SortedRequestDTO) -> Observable - func fetchPopularPopUp(request: SortedRequestDTO) -> Observable + func fetchHome(page: Int32?, size: Int32?, sort: String?) -> Observable + func fetchCustomPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable + func fetchNewPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable + func fetchPopularPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable } diff --git a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/PopUpAPIRepository.swift b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/PopUpAPIRepository.swift index 4cec5864..d03a9666 100644 --- a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/PopUpAPIRepository.swift +++ b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/PopUpAPIRepository.swift @@ -3,10 +3,42 @@ import Foundation import RxSwift protocol PopUpAPIRepository { - func postBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable - func getClosePopUpList(request: GetSearchPopUpListRequestDTO) -> Observable - func getOpenPopUpList(request: GetSearchPopUpListRequestDTO) -> Observable - func getSearchPopUpList(request: GetSearchPopUpListRequestDTO) -> Observable - func getPopUpDetail(request: GetPopUpDetailRequestDTO) -> Observable - func getPopUpComment(request: GetPopUpCommentRequestDTO) -> Observable + func postBookmarkPopUp(popUpStoreId: Int64) -> Completable + + func getClosePopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable + + func getOpenPopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable + + func getSearchPopUpList( + categories: String?, + page: Int32?, + size: Int32?, + sort: String?, + query: String?, + sortCode: String? + ) -> Observable + + func getPopUpDetail(commentType: String?, popUpStoreId: Int64, viewCountYn: Bool?) -> Observable + + func getPopUpComment( + commentType: String?, + page: Int32?, + size: Int32?, + sort: String?, + popUpStoreId: Int64 + ) -> Observable } diff --git a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/UserAPIRepository.swift b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/UserAPIRepository.swift index 5d37ef5f..3012787d 100644 --- a/Poppool/Poppool/DomainLayer/DomainInterface/Repository/UserAPIRepository.swift +++ b/Poppool/Poppool/DomainLayer/DomainInterface/Repository/UserAPIRepository.swift @@ -3,25 +3,47 @@ import Foundation import RxSwift protocol UserAPIRepository { - func postBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable - func deleteBookmarkPopUp(request: PostBookmarkPopUpRequestDTO) -> Completable - func postCommentLike(request: CommentLikeRequestDTO) -> Completable - func deleteCommentLike(request: CommentLikeRequestDTO) -> Completable - func postUserBlock(request: PostUserBlockRequestDTO) -> Completable - func deleteUserBlock(request: PostUserBlockRequestDTO) -> Completable - func getOtherUserCommentList(request: GetOtherUserCommentListRequestDTO) -> Observable - func getMyPage() -> Observable + func postBookmarkPopUp(popUpStoreId: Int64) -> Completable + func deleteBookmarkPopUp(popUpStoreId: Int64) -> Completable + func postCommentLike(commentId: Int64) -> Completable + func deleteCommentLike(commentId: Int64) -> Completable + func postUserBlock(blockedUserId: String?) -> Completable + func deleteUserBlock(blockedUserId: String?) -> Completable + + func getOtherUserCommentList( + commenterId: String?, + commentType: String?, + page: Int32?, + size: Int32?, + sort: String? + ) -> Observable + + func getMyPage() -> Observable func postLogout() -> Completable - func getWithdrawlList() -> Observable - func postWithdrawl(request: PostWithdrawlListRequestDTO) -> Completable - func getMyProfile() -> Observable - func putUserTailoredInfo(request: PutUserTailoredInfoRequestDTO) -> Completable - func putUserCategory(request: PutUserCategoryRequestDTO) -> Completable - func putUserProfile(request: PutUserProfileRequestDTO) -> Completable - func getMyCommentedPopUp(request: SortedRequestDTO) -> Observable - func getBlockUserList(request: GetBlockUserListRequestDTO) -> Observable - func getNoticeList() -> Observable - func getNoticeDetail(noticeID: Int64) -> Observable - func getRecentPopUp(request: SortedRequestDTO) -> Observable - func getBookmarkPopUp(request: SortedRequestDTO) -> Observable + func getWithdrawlList() -> Observable + func postWithdrawl(list: [(Int64, String?)]) -> Completable + + func getMyProfile() -> Observable + func putUserTailoredInfo(gender: String?, age: Int32) -> Completable + + func putUserCategory( + interestCategoriesToAdd: [Int64], + interestCategoriesToDelete: [Int64], + interestCategoriesToKeep: [Int64] + ) -> Completable + + func putUserProfile( + profileImageUrl: String?, + nickname: String?, + email: String?, + instagramId: String?, + intro: String? + ) -> Completable + + func getMyCommentedPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable + func getBlockUserList(page: Int32?, size: Int32?, sort: String?) -> Observable + func getNoticeList() -> Observable + func getNoticeDetail(noticeID: Int64) -> Observable + func getRecentPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable + func getBookmarkPopUp(page: Int32?, size: Int32?, sort: String?) -> Observable }