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

[3주차 서버 코드 실서버로 반영] #160

Merged
merged 13 commits into from
Feb 22, 2024
Merged

[3주차 서버 코드 실서버로 반영] #160

merged 13 commits into from
Feb 22, 2024

Conversation

DSL2e
Copy link
Collaborator

@DSL2e DSL2e commented Feb 22, 2024

No description provided.

99winnmin and others added 13 commits February 22, 2024 18:13
- FragmentMyReservationBinding을 사용하여 뷰 바인딩 초기화 및 리소스 정리 로직 구현
- MyReservationViewModel을 통해 사용자의 예약 상태(WAIT, APPROVE, REJECT)에 따른 예약 내역 조회 로직 구현
- 예약 내역을 표시하기 위한 RecyclerView에 ReservationHistoryAdapter 적용 및 레이아웃 매니저 설정
- RecyclerView 스크롤 리스너를 추가하여 스크롤이 끝에 도달할 때마다 추가 예약 내역을 비동기적으로 불러오는 로직 구현
- 사용자의 예약 상태 선택(ChipGroup)에 따라 해당 상태의 예약 내역만 조회하고 표시하는 기능 구현
- 예약 내역이 없을 경우 빈 상태 화면을 표시하는 로직 구현

Related to: #150
- getMyReservationHistory 함수 구현: 사용자의 액세스 토큰, 정렬 타입(sortType), 마지막 조회된 예약 ID(lastReservationId)를 받아, ReservationService의 getReservationHistory 메소드를 호출하여 사용자의 예약 내역을 비동기적으로 조회
- 조회 과정 중 상태를 Resource 타입으로 감싸서 Flow를 통해 반환, 로딩 상태, 성공 상태, 오류 상태를 스트림으로 전달
- 성공적인 API 응답 처리 시, 응답 본문에서 예약 내역 데이터를 추출하여 Resource.Success로 감싸서 반환
- API 호출 실패 또는 예외 발생 시, Resource.Error를 반환하고 오류 로그 출력

Related to: #150
- DataSource 에서 받아온 값을 Model 객체로 변환하는 getMyReservationHistory 메서드 구현

Related to: #150
- 예약 내역 항목(ReservationHistoryItemBinding) 및 로딩 항목(ProgressBarItemBinding)을 위한 뷰 홀더(ReservationHistoryViewHolder, LoadingViewHolder) 구현
- getItemViewType을 오버라이드하여 항목 타입을 구분하고, 적절한 뷰 홀더 생성 로직 구현
- 예약 상태(WAIT, APPROVE, USED, REJECT)에 따라 다른 칩 색상과 텍스트 설정
- 예약 내역의 목록을 관리하는 reservationHistoryList와 이를 업데이트하는 함수(setReservationHistoryList, removeLoadingFooter, clearReservationHistoryList) 구현
- 페이지네이션을 위한 로딩 푸터 추가 및 제거 로직 구현

Related to: #150
- MyReservationViewModel에서 사용자의 예약 내역 상태를 관리하기 위한 _myReservationHistory MutableStateFlow 및 공개 StateFlow 정의
- 로딩 상태를 관리하기 위한 _isLoading MutableStateFlow와 이를 외부에서 관찰할 수 있도록 하는 isLoading StateFlow 정의
- fetchMyReservationHistory 함수 구현: 사용자의 액세스 토큰을 UserPreferencesRepository에서 조회하고, ReservationRepository의 getMyReservationHistory 함수를 호출하여 예약 내역을 비동기적으로 로드. 로딩 상태 관리 및 예외 처리 포함
- 로드된 예약 내역 데이터를 _myReservationHistory에 할당하고, 로딩 상태를 업데이트

Resolved: #150
- 필요한 데이터가 빠져서 수정

Related to : #158
@DSL2e DSL2e merged commit 9c40318 into main Feb 22, 2024
1 check passed
@DSL2e DSL2e self-assigned this Feb 22, 2024
@DSL2e DSL2e added deploy 배포 관련 작업을 진행한 경우 BE 백엔드 대산 ⛄ 대산이가 작업헀어요 labels Feb 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 deploy 배포 관련 작업을 진행한 경우 대산 ⛄ 대산이가 작업헀어요
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants