전체 매장 목록 조회 (Master)
- 전체 매장을 조회하기 위해 GET /api/admin/stores/{userId} 기능 구현.
- 조회를 시도하는 유저의 권한을 확인한 뒤 매장의 유·무와 상태를 반환했기에 간단하게 구현했다.
특정 매장 강제 삭제 (Master)
- 특정 매장을 삭제하기 위해 DELETE /api/admin/stores/{storeId} 기능 구현.
- 불법 매장 또는 관리자가 매장 폐업을 결정하고 삭제할 수 있도록 기능을 구현.
- 삭제 요청을 승인하는 흐름과 비슷하게 실제로 데이터베이스에 삭제되지 않고 상태값을 변경함.
매장 등록, 삭제 요청 승인 (Master)
- 매장을 등록, 삭제 요청하기 위해 PUT /api/admin/stores/{storeId}/approve 기능 구현.
- 매장 주인이 매장을 등록. 삭제를 요청하면 관리자는 요청이 들어온 매장의 상태값을 변경시키는 방법으로 구현.
- PENDING 또는 DELETE_REQUESTED 상태일때만 해당 승인이 이루어 질 수 있도록 구현
매장 정보 수정 승인 (Master)
- 매장 정보 수정 사항을 승인하기 위해 PUT /api/admin/stores/{storeId}/update 기능 구현.
- 매장 테이블에 존재하는 상태값 중 UPDATE_REQUESTED 상태인 매장만 수정할 수 있음.
- 하나의 매장에서 여러 수정사항을 따로 따로 보낼 경우, 해당 매장 목록을 조회한 뒤 가장 최근의 수정 사항을 변경할 수 있게 함.
- 수정이 완료되면 매장 테이블에 데이터가 저장되고, 수정 사항을 저장해놓은 데이터베이스의 해당 사항은 COMPLETE로 처리됨.
- 별도의 테이블을 생성해서 관리하는 방법 이외에 어떤 방법이 있을까 고민하는 과정에서 많은 시간을 소비함.
- 결국 가장 간단한 방법으로 매장 주인의 수정사항을 추후에도 조회할 수 있게 새로운 테이블을 만들기로 결정함.
매장 정보 등록 (Master) - 별다른 등록 요청 없이 관리자가 생성
- 관리자가 매장을 등록하기 위해 POST /api/admin/stores 기능 구현.
- 매장 등록을 요청에 에러가 발생할 수 있는 상황에 대비해서 관리자가 OWNER 권한을 가진 사용자를 확인한 뒤 매장을 등록해줌.
- 관리자가 직접 등록해주는 매장이기 때문에 기본적으로 OPEN 상태가 적용됨.
'🔥 스파르타 TIL (프로젝트)' 카테고리의 다른 글
두 번째 프로젝트 기록하기 1 (1) | 2025.03.22 |
---|---|
NAVER Geocoding API 사용해서 위도, 경도 추가하기 (0) | 2025.03.19 |
Slack API 적용해서 사용자에게 DM 보내는 기능을 만들어보자 (0) | 2025.03.18 |
프로젝트 기록하기 3 (1) | 2025.02.20 |
프로젝트 기록하기 1 (1) | 2025.02.18 |