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

fix(be): integrate problem exposeTime isVisible #1673

Merged
merged 48 commits into from
Aug 18, 2024

Conversation

cho-to
Copy link
Contributor

@cho-to cho-to commented May 6, 2024

Description

Closes #1644
Closes TAS-267
Closes TAS-268

problem 필드에 존재하는 exposeTime, isVisible 필드에서 isVisible 필드를 제거하고 exposeTime 필드만을 살립니다.

  • 기존에는 exposeTime, isVisible 필드가 모두 존재해서 이로 인해 발생하는 문제들이 조금 있었습니다.
    • 특정 문제가 대회에 속하게 되면서 exposeTime이 설정되었다고 해도 getProblems 에는 isVisible을 기준으로 받아오는 경우 등등

exposeTime, isVisible을 둘 다 살려놓기에는 로직을 짤 때 충돌하는 부분이 많을 것 같아서 exposeTime만을 살려놓는게 나을 것 같다고 생각했습니다. 그래서 isVisible 필드를 제거하고 exposeTime필드로 통일하였습니다!

이때, API 스펙상으로는 변동없이 isVisible을 사용할 수 있도록 하였습니다. (request, response도 exposeTime이 아닌 isVisible 형태로 반환됩니다.) 대신, upcoming/ongoing contest에 속한 Problem의 visibility 설정을 건드릴 시에는 에러를 반환하도록 하였습니다.
또한, upcoming/ongoing contest에 속한 problem의 경우, admin에서 getProblem 통해 접근할시에는 isVisible을 null로 설정하였습니다.

기획상의 변경(대회가 끝나면 문제는 비공개처리가 원칙)으로 exposeTime 필드 이름이 visibleLockTime (isVisible을 수정할 수 있도록 하는 시간) 으로 바뀌었습니다. 필드명, 기획 변경 이외에는 바뀐 점이 없습니다.

스크린샷 2024-07-30 오전 12 18 55

위는 시간 , 밑은 isVisible 필드(프론트에게 전달되어지는 값)의 값을 의미합니다.

Additional context

코드에서 논의할만한 부분은 conservation으로 남기겠습니다.

구현한 사항 정리

  • exposeTime 및 isVisible 통합
  • seed 데이터 수정 및 bruno 파일 추가
  • MIN_DATE, MAX_DATE 상수 추가 (@libs)
  • 프론트 전달시 visibleLockTime -> isVisible 변환 로직 추가
  • 문제 삭제 혹은 대회에서 제거시 visibleLockTime 처리 관련 코드 추가
  • Problem이 속한 제일 늦은 Contest가 끝나면 invisble상태로 전환

Before submitting the PR, please make sure you do the following

@cho-to cho-to self-assigned this May 6, 2024
Copy link

vercel bot commented May 6, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
codedang ✅ Ready (Inspect) Visit Preview Aug 18, 2024 0:39am

@cho-to cho-to changed the title fix(be): integrate problem exposeTIme isVisible fix(be): integrate problem exposeTime isVisible May 6, 2024
apps/backend/prisma/seed.ts Outdated Show resolved Hide resolved
@cho-to cho-to requested a review from Lee-won-hyeok May 30, 2024 09:15
Copy link
Member

@Jaehyeon1020 Jaehyeon1020 left a comment

Choose a reason for hiding this comment

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

세달만에 머지.. 수고많으셨습니다!!

@jimin9038
Copy link
Member

@cho-to 머지해두 되나요 ?

@Jaehyeon1020 Jaehyeon1020 merged commit 70f46a7 into main Aug 18, 2024
8 of 9 checks passed
@Jaehyeon1020 Jaehyeon1020 deleted the 1644-integrate-problem-exposeTime-isVisible branch August 18, 2024 12:38
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.

Problem DB 필드 중 isVisible 및 exposeTime 통합
3 participants