File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ export const createUserCategory = async ({
4545 categoryName,
4646 iconKey,
4747 iconUrl,
48+ displayOrder,
4849} ) => {
4950 const maxOrder = await prisma . userCategory . aggregate ( {
5051 where : { userId } ,
Original file line number Diff line number Diff line change @@ -80,7 +80,7 @@ const router = express.Router();
8080 */
8181/**
8282 * @swagger
83- * /categories:
83+ * /api/ categories:
8484 * get:
8585 * summary: 카테고리 목록 조회
8686 * tags: [Categories]
@@ -109,7 +109,7 @@ const router = express.Router();
109109 */
110110/**
111111 * @swagger
112- * /categories:
112+ * /api/ categories:
113113 * post:
114114 * summary: 사용자 카테고리 생성
115115 * tags: [Categories]
@@ -142,7 +142,7 @@ const router = express.Router();
142142 */
143143/**
144144 * @swagger
145- * /categories/{id}:
145+ * /api/ categories/{id}:
146146 * patch:
147147 * summary: 카테고리 수정 (이름, 아이콘 변경)
148148 * tags: [Categories]
@@ -184,7 +184,7 @@ const router = express.Router();
184184 */
185185/**
186186 * @swagger
187- * /categories/{id}:
187+ * /api/ categories/{id}:
188188 * delete:
189189 * summary: 카테고리 삭제
190190 * tags: [Categories]
Original file line number Diff line number Diff line change @@ -27,11 +27,19 @@ export const createCategoryService = async ({
2727 if ( dup > 0 )
2828 throw new BaseError ( "이미 존재하는 카테고리명입니다" , 409 , "CAT_DUP" ) ;
2929
30+ const lastCategory = await prisma . userCategory . findFirst ( {
31+ where : { userId } ,
32+ orderBy : { displayOrder : "desc" } ,
33+ } ) ;
34+
35+ const nextOrder = lastCategory ? lastCategory . displayOrder + 1 : 0 ;
36+
3037 const created = await createUserCategory ( {
3138 userId,
3239 categoryName : name ,
3340 iconKey,
3441 iconUrl,
42+ displayOrder : nextOrder ,
3543 } ) ;
3644
3745 const wordCount = await countUserWordsInCategory ( {
@@ -126,15 +134,22 @@ export const patchCategoryService = async ({
126134 if ( ! existing )
127135 throw new BaseError ( "카테고리를 찾을 수 없습니다" , 404 , "CAT404" ) ;
128136
129- // 기본 카테고리 이름 수정 방지
130- if ( existing . isDefault && name !== undefined ) {
137+ const LOCKED_DEFAULT_NAMES = [ "최근사용" , "즐겨찾기" , "어미" ] ;
138+
139+ // 일부 기본 카테고리만 수정 금지
140+ if (
141+ existing . isDefault &&
142+ name !== undefined &&
143+ LOCKED_DEFAULT_NAMES . includes ( existing . categoryName )
144+ ) {
131145 throw new BaseError (
132- "기본 카테고리 이름은 수정할 수 없습니다" ,
146+ "해당 기본 카테고리는 이름을 수정할 수 없습니다" ,
133147 400 ,
134148 "CAT_DEFAULT_EDIT" ,
135149 ) ;
136150 }
137151
152+ // 이름 중복 검사
138153 if ( name !== undefined ) {
139154 const dup = await countDuplicateCategoryName ( {
140155 userId,
You can’t perform that action at this time.
0 commit comments