Skip to content

Conversation

@ksyq12
Copy link
Contributor

@ksyq12 ksyq12 commented Nov 21, 2025

#️⃣ 연관된 이슈


📝 작업 내용

  • 알바생이 초대코드로 근무지 참가 요청을 보내면 사장님은 승인/거절을 선택할 수 있습니다.
  • 알림 리스트 셀에 승인 거절 버튼 UI를 구현하고, 버튼의 상태를 관리합니다.

📸 스크린샷

구현 내용 스크린샷
초대코드로 근무지 참가 화면 기록 2025-11-22 오전 12 33 12

@ksyq12 ksyq12 self-assigned this Nov 21, 2025
@ksyq12 ksyq12 added the enhancement New feature or request label Nov 21, 2025
@gemini-code-assist
Copy link

Summary of Changes

Hello @ksyq12, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 사장님이 알바생의 근무지 참가 요청을 알림 목록에서 직접 승인하거나 거절할 수 있도록 하는 핵심 기능을 도입합니다. 이를 위해 푸시 알림 처리 로직을 확장하고, 알림 UI에 상호작용 가능한 버튼을 추가하며, 관련 네트워크 통신 및 데이터 모델을 업데이트했습니다. 또한, 루틴 관리 화면의 사용자 경험을 개선하고 전반적인 에러 핸들링을 강화했습니다.

Highlights

  • 근무지 참가 요청 승인/거절 기능: 알바생이 초대코드로 근무지 참가 요청을 보낼 경우, 사장님이 알림 목록에서 해당 요청을 승인하거나 거절할 수 있는 기능이 구현되었습니다.
  • 알림 UI 개선 및 상태 관리: 알림 리스트 셀에 승인/거절 버튼 UI가 추가되었으며, 각 버튼의 상태(초기, 승인됨, 거절됨)를 관리하는 로직이 포함되었습니다. 이를 통해 사용자에게 직관적인 피드백을 제공합니다.
  • 푸시 알림 데이터 확장 및 처리: 푸시 알림 처리 로직이 확장되어 workerId, workplaceId, notificationId와 같은 추가 정보를 포함하게 되었으며, 이를 통해 알림 탭 시 더 정확한 화면 이동 및 데이터 처리가 가능해졌습니다.
  • 네트워크 에러 핸들링 강화: 네트워크 에러 처리를 위해 NetworkError enum에 400, 403, 404, 422 등의 HTTP 상태 코드에 대한 구체적인 에러 케이스와 사용자 친화적인 메시지가 추가되었습니다.
  • FCM 토큰 동기화 로직 개선: FCM 토큰이 서버에 동기화되는 시점을 사용자가 로그인한 이후로 변경하여, 불필요한 토큰 동기화 시도를 방지하고 안정성을 높였습니다.
  • 루틴 작업 항목 입력 방식 개선: 루틴 추가/수정 화면의 TodoCell에서 텍스트 필드 입력 처리를 RxSwift 기반으로 변경하여, 기존의 tagaddTarget 방식보다 효율적이고 반응형으로 데이터를 관리합니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

안녕하세요. 근무지 참가 요청 승인/거절 기능 구현에 대한 코드 리뷰를 진행했습니다. 전반적으로 푸시 알림 처리부터 UI 상태 관리까지 기능 구현을 위해 많은 부분을 꼼꼼하게 작업해주셨습니다. 특히 DTO와 도메인 모델을 분리하고, RxSwift를 활용하여 반응형으로 코드를 개선하신 점이 인상적입니다. 다만, 몇 가지 부분에서 코드 중복, 성능, 잠재적 오류 발생 가능성이 보여 개선을 제안드립니다. 자세한 내용은 아래 주석을 참고해주세요.

// }
//
// return Date()
// }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 코드가 NotificationListResponseDTOtoDomain메서드로 옮겨진건가요?
그렇다면 주석을 삭제해도 괜찮을것 같습니다!

}

func updateNotifications(_ notifications: [UserNotification]) {
_ = notifications.filter { $0.isRead }.count
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 코드의 역할이 궁금합니다!
이렇게 해도 컴파일이 되나요...?

}

var approveTapped: Observable<(
notificationId: Int, workplaceId: Int, workerId: Int
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delegate 대신 이런식으로도 데이터를 상위 View에 보낼수 있군요...

default:
break
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type에 따라서 currentStateapproveButton, rejectButton 프로퍼티를 변경하고, currentState에 따라서 다시 이 UI들을 변경하고 있는것으로 보이는데, switch문을 하나로 합치는건 어떨까요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

초대코드로 근무지 등록 승인, 거절 알림 구현 (사장님)

4 participants