Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: CameraAPIWorker 기존 Network 모듈 리펙토링 #705

Merged
merged 2 commits into from
Nov 21, 2024

Conversation

Do-hyun-Kim
Copy link
Collaborator

@Do-hyun-Kim Do-hyun-Kim commented Nov 18, 2024

🔵PR을 올리기 전 아래 사항을 확인해주세요.

  • 구현한 로직과 기능이 올바르게 작동되는지 충분히 테스트해주세요.
  • 코드의 성능이나 메모리 효율성이 적절하게 고려되었는지, 불필요한 코드가 없는지 검토해주세요.
  • 이번 PR에서 구현된 주요 기능이나 해결된 문제에 대해 자세히 서술해주세요.
    (위 내용은 지워주세요)

😽개요

  • 기존 CameraAPIs, CameraAPIWorkerBBAPI를 채택하여 리펙토링해요
  • CameraAPIWorker 내부에 있는 인스턴스 메서드 네이밍을 수정 해요
  • CameraAPIWorker, CameraRepository에 주석을 추가해요
  • BBRxAPIWorker 내부 Upload 통신 메서드를 구현해요
  • Domain, Data 모듈에 있는 Trash 폴더 일부를 제거해요

🛠️작업 내용

  • 이전에 구현되어 있던 APIWorkerBBAPI를 채택하여 리팩토링 작업했습니다. 추가로 CameraAPIWorker, CameraAPIs에 주석 및 네이밍을 수정해서 어떤 API를 호출하는지 명확하게 구분할 수 있도록 하였습니다.
  • BBRxAPIWorker 내부에 이미지 Upload를 위한 upload Method를 구현하였습니다. 그리고 upload 같은 경우 서버에서 자체적으로 성공 여부를 넘겨 주지 않습니다. 그래서 DataResponseSerializerProtocol를 사용해서 응답 핸들러를 직접 커스텀으로 구현하였습니다.

DataResponseSerializerProtocol

public struct BBUploadResponseSerializer: DataResponseSerializerProtocol {
    public typealias SerializedObject = Bool

    public init() { }
    
    
    public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: (any Error)?) throws -> Bool {
        guard let statusCode = response?.statusCode,
              (200..<300) ~= statusCode else {
            throw BBNetworkError.generic(error!)
        }
        
        return true
    }
}
  • DataResponseSerializerProtocol를 채택한 BBUploadResponseSerializer를 통해 statusCode가 200부터 300전까지 범위일 경우 true Return 하도록 하였습니다.

✅테스트 케이스

  • 리얼 이모지 관련 업로드 API가 정상적으로 호출되는지 확인하기
  • 카메라 이미지 업로드가 정상적으로 호출되는지 확인하기
  • 프로필 이미지 업로드가 정상적으로 호출되는지 확인하기

🙏🏻아래와 같이 PR을 리뷰해주세요.

  • PR 내용이 부족하다면 보충 요청해주세요.
  • 코드 스타일이 팀의 규칙에 맞게 작성되었는지, 일관성을 유지하고 있는지 확인해주세요.
  • 코드에 대한 문서화나 주석이 필요한 부분에 적절하게 작성되어 있는지 확인해주세요.
  • 구현된 로직이 효율적이고 올바르게 작성되었는지, 아키텍처를 잘 준수하고 있는지 검토해주세요.
  • 네이밍, 포매팅, 주석 등 코드의 일관성이 유지되고 있는지 확인해주세요.

- CameraAPIWorker 메서드 네이밍 수정 및 주석 추가
- BBNetworkService, SessionManager, BBAPIWorker Upload Method 추가
- Upload 관련 Serializer 응답 핸들러 추가
- Camera 관련 Repository Method 네이밍 수정 및 RequestDTO, Entity 수정
- Camera 관련 Reactor 코드 리펙토랑
@Do-hyun-Kim Do-hyun-Kim requested a review from akrudal November 18, 2024 05:38
@Do-hyun-Kim Do-hyun-Kim self-assigned this Nov 18, 2024
@Do-hyun-Kim Do-hyun-Kim marked this pull request as draft November 18, 2024 05:41
- CameraViewReactor Member Id 조회 UseCase 추가
@Do-hyun-Kim Do-hyun-Kim marked this pull request as ready for review November 18, 2024 13:05
@Do-hyun-Kim Do-hyun-Kim marked this pull request as draft November 19, 2024 09:14
@Do-hyun-Kim Do-hyun-Kim marked this pull request as ready for review November 21, 2024 09:19
@Do-hyun-Kim Do-hyun-Kim merged commit c712d4d into develop Nov 21, 2024
@Do-hyun-Kim Do-hyun-Kim deleted the refactor/#703-camera-deprecated-code-modify branch November 21, 2024 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant