Skip to content

Commit 32d5d22

Browse files
authored
[Hotfix] 기본 카테고리 권한 분기, swagger 수정 (#74)
2 parents 07d03c8 + ba1ece3 commit 32d5d22

3 files changed

Lines changed: 23 additions & 7 deletions

File tree

src/category/category.repository.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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 },

src/category/category.route.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff 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]

src/category/category.service.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff 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,

0 commit comments

Comments
 (0)