장기현장실습
PLSnote 이슈
#2644 그룹에 탈퇴신청을 하고 일정기간이 지나면 탈퇴가 되는 기능 이슈 진행중
- 탈퇴신청일을 실제 데이터를 받아와서 보여주기
- Group_user의 job_id 가 생성된 날짜를 받아오려 했으니까 접근할 수 없다는 오류가 생겨 group_user의 updated_at을 가져와 나타냈다. Format: :short로 설정하면 날짜만 가져올 수 있다. 그리고 탈퇴신청일은 job이 있을때만 나타내야하기 때문에 조건을 주었다.
- if group.group_users.find_by(user_id: user.id).job_id.present? .col-auto .badge.badge-light.mt-3 = "#{t('group_manager.users.index.application_date_for_withdrawal')} #{l group.group_users.find_by(user_id: user.id).updated_at, format: :short}"
- 사용자가 탈퇴신청을 해서 제거 대기중인 것과 그룹 관리자가 그룹에서 제거를 눌러 제거 대기중인 것 2가지 경우가 있다. 사용자가 탈퇴신청을 해서 대기중인 것은 job이 60일 뒤에 실행되는 부분이 대기중이기 때문에 '즉시제거' 같은 버튼을 추가해주어야한다. 반면 그룹관리자에 의해 대기중인 상태는 job이 실행중이며 처리 시간이 걸리기 때문에 잠시 대기중이라는 의미다. 따라서 이 부분을 어떻게 구현할지 논의가 필요하다.
- 탈퇴 신청일과 즉시제거 버튼은 사용자가 탈퇴 신청한 경우에만 보여주기로 결정했다.
- Group_user의 job_id 가 생성된 날짜를 받아오려 했으니까 접근할 수 없다는 오류가 생겨 group_user의 updated_at을 가져와 나타냈다. Format: :short로 설정하면 날짜만 가져올 수 있다. 그리고 탈퇴신청일은 job이 있을때만 나타내야하기 때문에 조건을 주었다.
- 기존에 새로 만든 job은 그룹에서 제거시 생성되는 job과 같은 역할을 하고 실행되는 시기?만 다르기 때문에 코드를 수정해주었다.
- 그룹에서 제거 시 생성되는 job인 DestroyGroupUserJob을 넣어 60일 뒤에 실행되도록 하는 job이다. 이는 사용자가 탈퇴신청을 하면 생성된다.
class ApplicationWithdrawalJob < ApplicationJob queue_as :default def perform(user, group) DestroyGroupUserJob.set(wait: 60.day).perform_later(user, group) end end
- 사용자가 탈퇴신청을 할 때 실행되는 컨트롤러도 수정했다.
def withdraw @group = Group.find_by(id: params[:group_id]) job = ApplicationWithdrawalJob.perform_later(current_user, @group) if job @group_user = current_user.group_users.find_by(group_id: params[:group_id]) @group_user.update job_id: job.provider_job_id redirect_to group_apply_user_path end end
- 그룹에서 제거 시 생성되는 job인 DestroyGroupUserJob을 넣어 60일 뒤에 실행되도록 하는 job이다. 이는 사용자가 탈퇴신청을 하면 생성된다.
'TIL' 카테고리의 다른 글
# 211125 TIL ([Ruby, slim] 선택된 team의 plan 데이터 리스트로 보여주기) (0) | 2021.11.26 |
---|---|
# 211123 TIL ([Ruby, slim] DB migration, 탈퇴 신청/취소 기능) (0) | 2021.11.24 |
# 211119 TIL ([Ruby, slim] 리다이렉션 하기, 버튼 클릭하면 액션 실행 link_to) (0) | 2021.11.22 |
# 211118 TIL ([Ruby, slim] Model 파일 구조 파악하기) (0) | 2021.11.19 |
# 211117 TIL ([Ruby, slim] job 생성하기, 컨트롤러에 액션 정의하기) (0) | 2021.11.18 |