issues
search
whatachad
/
plan
0
stars
0
forks
source link
Schedule REST API 개발
#8
Open
JinhyeonKwak
opened
1 year ago
JinhyeonKwak
commented
1 year ago
CRUD
Schedule
[x] 캘린더 조회 : GET /v1/schedules/{YYYYMM}
[x] 최근 내역 조회 : GET /v1/schedules/{YYYYMM}/recent-history
가계부(Account)
[x] 생성/추가 : POST /v1/schedules/{YYYYMM}/accounts/{DD}
[x] 수정 : PUT /v1/schedules/{YYYYMM}/accounts/{DD}/{account_id}
[x] 삭제 : DELETE /v1/schedules/{YYYYMM}/accounts/{DD}/{account_id}
할 일(DayWork)
[x] 생성/추가 : POST /v1/schedules/{YYYYMM}/dayworks/{DD}
[x] 수정 : PUT /v1/schedules/{YYYYMM}/dayworks/{DD}/{daywork_id}
[x] 삭제 : DELETE /v1/schedules/{YYYYMM}/dayworks/{DD}/{daywork_id}
Advanced (지속적으로 추가)
[ ] 친구 추가 기능
[ ] 매일 지정된 시간에 메일 알림 보내기 (오늘 수입/지출 내역, 할 일 완료, 친구의 달성률 등)
[ ] 사용자의 지출 내역을 종류별로 합산
[ ] 월별 총 지출이 budget을 초과하는지 계산
[ ] 일별로 daywork 달성률 계산
[ ] 가계부에 파일 첨부
JinhyeonKwak
commented
1 year ago
API 구현 시 추가 요구 사항
CRUD
Schedule
캘린더 조회
[x] DayWork에 대한 페이징
[x] 반환 타입은 List<List
>와 같은 형태
[x] 성능 최적화
최근 내역 조회
[x] 최근 5일에 대한 Account/DayWork 보여주기 + 더 보기
[x] Account 정렬, DayWork 정렬
가계부(Account)
생성/추가
[x] 가계부 최초 생성시 스케줄 먼저 생성
할 일(DayWork)
생성/추가
[x] 할 일 최초 생성시 스케줄 먼저 생성
JinhyeonKwak
commented
1 year ago
Account 관련 API 예외 처리
Account 생성
[x] title은 1~50자 이내 (bean validation)
[x] type(AccountType)이 SPEND, INCOME이 아닌 올바르지 못한 경우 (필수)
[x] category가 존재하지 않는 경우 (필수)
[x] category가 SPEND에 대한 category가 아닌 경우 (반대의 경우 포함)
[x] cost는 0~99999999까지만 허용 (bean validation)
[x] yearAndMonth는 YYYYMM 형식만 허용 (bean validation)
[x] date는 해당 month에 가능한 일수만 허용
Account 수정
[x] DTO, yearAndMonth에 대한 validation은 생성 api와 동일
[x] 존재하지 않는 accountId에 대한 접근
HyunJng
commented
1 year ago
Daywork Validation
create
DTO
[x] [max] title 길이가 30자 이상이 들어오지 않도록 한다.
[x] [typeMismatch] priority가 DayworkPriority(FIRST, SECONDE, THIRD)에 없는 값이 오지 않는다.
[x] [NotBlank] title, priority 모두 blank, null 이어서는 안된다.
URL
[x] [regexp] yearAndMonth는 YYYYMM 형식만 허용
[x] date가 해당 달의 date에 포함되는지 확인한다.
update
DTO
[x] [max] title 길이가 30자 이상이 들어오지 않도록 한다.
[x] [typeMismatch] priority가 DayworkPriority(FIRST, SECONDE, THIRD)에 없는 값이 오지 않는다.
[x] [typeMismatch] status가 Workcheck(COMPLETE, NOT_COMPLETE)에 없는 값이 오지 않는다.
[x] [NotBlank] title, priority, status 모두 blank, null 이어서는 안된다.
URL
[x] dayworkId가 유효한 Id인지 확인한다.
CRUD
Advanced (지속적으로 추가)