Skip to content

Commit

Permalink
Merge pull request depromeet#565 from depromeet/refactor/depromeet#562-…
Browse files Browse the repository at this point in the history
…camera-usecase-logic-modify
  • Loading branch information
Do-hyun-Kim authored Jun 18, 2024
2 parents d9f9a19 + cb69632 commit a634a93
Show file tree
Hide file tree
Showing 77 changed files with 827 additions and 739 deletions.
4 changes: 2 additions & 2 deletions 14th-team5-iOS/App/Sources/Manager/DeepLinkManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ final class DeepLinkManager {

}

private func fetchTodayPost(type: PostType, completion: @escaping (PostListPage?) -> Void) {
private func fetchTodayPost(type: PostType, completion: @escaping (PostListPageEntity?) -> Void) {
let dateString = Date().toFormatString(with: "yyyy-MM-dd")
let query = PostListQuery(date: dateString, type: type)

postUseCase.excute(query: query)
postUseCase.execute(query: query)
.subscribe(onSuccess: { result in
completion(result)
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public final class CameraDIContainer: BaseDIContainer {
public typealias ViewContrller = CameraViewController
public typealias Repository = CameraRepositoryProtocol
public typealias Reactor = CameraViewReactor
public typealias UseCase = CameraViewUseCaseProtocol


private let cameraType: UploadLocation
Expand All @@ -42,18 +41,22 @@ public final class CameraDIContainer: BaseDIContainer {
return CameraViewController(reactor: makeReactor())
}

public func makeUseCase() -> UseCase {
return CameraViewUseCase(cameraRepository: makeRepository())
}


public func makeRepository() -> Repository {
return CameraRepository()
}

public func makeReactor() -> Reactor {

return CameraViewReactor(
cameraUseCase: makeUseCase(),
createProfileImageUseCase: CreateCameraUseCase(cameraRepository: makeRepository()),
uploadImageUseCase: FetchCameraUploadImageUseCase(cameraRepository: makeRepository()),
fetchMissionUseCase: FetchCameraTodayMissionUseCase(cameraRepository: makeRepository()),
fetchRealEmojiUpdateUseCase: FetchCameraRealEmojiUpdateUseCase(cameraRepostiroy: makeRepository()),
editProfileImageUseCase: EditCameraProfileImageUseCase(cameraRepository: makeRepository()),
fetchRealEmojiCreateUseCase: FetchCameraRealEmojiUploadUseCase(cameraRepository: makeRepository()),
fetchRealEmojiListUseCase: FetchCameraRealEmojiListUseCase(cameraRepository: makeRepository()),
fetchRealEmojiPreSignedUseCase: FetchCameraRealEmojiUseCase(cameraRepository: makeRepository()),
provider: globalState,
cameraType: cameraType,
memberId: memberId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public final class CameraDisplayDIContainer: BaseDIContainer {
public typealias ViewContrller = CameraDisplayViewController
public typealias Repository = CameraRepositoryProtocol
public typealias Reactor = CameraDisplayViewReactor
public typealias UseCase = CameraDisplayViewUseCaseProtocol

fileprivate var displayData: Data
fileprivate var missionTitle: String
Expand All @@ -43,12 +42,15 @@ public final class CameraDisplayDIContainer: BaseDIContainer {
return CameraRepository()
}

public func makeUseCase() -> UseCase {
return CameraDisplayViewUseCase(cameraDisplayViewRepository: makeRepository())
}

public func makeReactor() -> Reactor {
return CameraDisplayViewReactor(provider: globalState, cameraDisplayUseCase: makeUseCase(), displayData: displayData, missionTitle: missionTitle, cameraType: cameraDisplayType)
return CameraDisplayViewReactor(
provider: globalState,
createPresignedCameraUseCase: CreateCameraUseCase(cameraRepository: makeRepository()),
uploadImageUseCase: FetchCameraUploadImageUseCase(cameraRepository: makeRepository()),
fetchCameraImageUseCase: CreateCameraImageUseCase(cameraRepository: makeRepository()),
displayData: displayData,
missionTitle: missionTitle,
cameraType: cameraDisplayType
)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ public final class CameraDisplayViewReactor: Reactor {

public var initialState: State
private let provider: GlobalStateProviderProtocol
private var cameraDisplayUseCase: CameraDisplayViewUseCaseProtocol
private let createPresignedCameraUseCase: CreateCameraUseCaseProtocol
private let uploadImageUseCase: FetchCameraUploadImageUseCaseProtocol
private let fetchCameraImageUseCase: CreateCameraImageUseCaseProtocol

public enum Action {
case viewDidLoad
Expand All @@ -33,9 +35,9 @@ public final class CameraDisplayViewReactor: Reactor {
case setRenderImage(Data)
case saveDeviceimage(Data)
case setDescription(String)
case setDisplayEntity(CameraDisplayImageResponse?)
case setDisplayEntity(CameraPreSignedEntity?)
case setDisplayOriginalEntity(Bool)
case setPostEntity(CameraDisplayPostResponse?)
case setPostEntity(CameraPostEntity?)
}

public struct State {
Expand All @@ -46,22 +48,27 @@ public final class CameraDisplayViewReactor: Reactor {
@Pulse var displayData: Data
@Pulse var missionTitle: String
@Pulse var displaySection: [DisplayEditSectionModel]
@Pulse var displayEntity: CameraDisplayImageResponse?
@Pulse var displayEntity: CameraPreSignedEntity?
@Pulse var displayOringalEntity: Bool
@Pulse var displayPostEntity: CameraDisplayPostResponse?
@Pulse var displayPostEntity: CameraPostEntity?
}



init(
provider: GlobalStateProviderProtocol,
cameraDisplayUseCase: CameraDisplayViewUseCaseProtocol,
createPresignedCameraUseCase: CreateCameraUseCaseProtocol,
uploadImageUseCase: FetchCameraUploadImageUseCaseProtocol,
fetchCameraImageUseCase: CreateCameraImageUseCaseProtocol,
displayData: Data,
missionTitle: String,
cameraType: PostType = .survival
) {
self.provider = provider
self.cameraDisplayUseCase = cameraDisplayUseCase
self.createPresignedCameraUseCase = createPresignedCameraUseCase
self.uploadImageUseCase = uploadImageUseCase
self.fetchCameraImageUseCase = fetchCameraImageUseCase

self.initialState = State(
isLoading: true,
displayDescrption: "",
Expand All @@ -86,7 +93,8 @@ public final class CameraDisplayViewReactor: Reactor {
.just(.setLoading(false)),
.just(.setError(false)),
.just(.setRenderImage(currentState.displayData)),
cameraDisplayUseCase.executeDisplayImageURL(parameters: parameters)
createPresignedCameraUseCase.execute(parameter: parameters)
.asObservable()
.withUnretained(self)
.subscribe(on: ConcurrentDispatchQueueScheduler.init(qos: .background))
.asObservable()
Expand All @@ -97,7 +105,7 @@ public final class CameraDisplayViewReactor: Reactor {
.just(.setError(true))
)
}
return owner.cameraDisplayUseCase.executeUploadToS3(toURL: originalURL, imageData: owner.currentState.displayData)
return owner.uploadImageUseCase.execute(to: originalURL, from: owner.currentState.displayData)
.subscribe(on: ConcurrentDispatchQueueScheduler.init(qos: .background))
.asObservable()
.flatMap { isSuccess -> Observable<CameraDisplayViewReactor.Mutation> in
Expand Down Expand Up @@ -155,7 +163,7 @@ public final class CameraDisplayViewReactor: Reactor {
uploadTime: DateFormatter.yyyyMMddTHHmmssXXX.string(from: Date())
)

return cameraDisplayUseCase.executeCombineWithTextImage(parameters: parameters, query: cameraQuery)
return fetchCameraImageUseCase.execute(parameter: parameters, query: cameraQuery)
.asObservable()
.catchAndReturn(nil)
.flatMap { entity -> Observable<CameraDisplayViewReactor.Mutation> in
Expand Down
Loading

0 comments on commit a634a93

Please sign in to comment.