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

아이템 스웨거 잠시 주석처리 #111

Merged
merged 2 commits into from
Feb 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
197 changes: 197 additions & 0 deletions src/items/items.swagger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
import { applyDecorators } from '@nestjs/common';
import { ApiOperation, ApiResponse, ApiBody } from '@nestjs/swagger';
import {
BuyItemDto,
EquipItemDto,
UnequipItemDto,
} from './dto/item-changeStatus.dto';

export const ApiItems = {
getAllItems: () => {
return applyDecorators(
ApiOperation({
summary: '모든 items 조회',
description: '존재하는 모든 아이템을 조회합니다.',
}),
ApiResponse({
status: 200,
description: '모든 items 성공적으로 조회됨',
content: {
JSON: {
example: {
id: 2,
name: 'blue-hat',
cost: 2000,
image: '2',
createdAt: '2024-11-05T10:30:15.000Z',
updatedAt: '2024-11-05T10:40:15.000Z',
},
},
},
}),
);
},
buyItem: () => {
return applyDecorators(
ApiOperation({
summary: '특정 user의 특정 item 구매하기',
description: '특정 user가 특정 item을 구매합니다.',
}),
ApiBody({
description: 'userId와 itemId를 포함한 요청 바디',
type: BuyItemDto,
}),
ApiResponse({
status: 204,
description: 'user가 item을 성공적으로 구매함',
}),
ApiResponse({
status: 400,
description: '유효하지 않은 요청 값 (userId 또는 itemId 오류)',
content: {
JSON: {
example: {
statusCode: 400,
message: 'Invalid userId or itemId provided',
error: 'Bad request',
},
},
},
}),
);
},

equipItem: () => {
return applyDecorators(
ApiOperation({
summary: '특정 user가 특정 item 장착',
description: '특정 user가 소유한 item을 장착',
}),
ApiBody({
description: 'userId와 itemId를 포함한 요청 바디',
type: EquipItemDto,
}),
ApiResponse({
status: 204,
description: 'item 장착 성공',
}),
ApiResponse({
status: 400,
description: '유효하지 않은 요청 값 (userId 또는 itemId 오류)',
content: {
JSON: {
example: {
statusCode: 400,
message: 'Invalid userId or itemId provided',
error: 'Bad request',
},
},
},
}),
);
},

unequipItem: () => {
return applyDecorators(
ApiOperation({
summary: '특정 user가 특정 item 해제',
description: '특정 user가 장착한 item을 해제한다',
}),
ApiBody({
description: 'userId와 itemId를 포함한 요청 바디',
type: UnequipItemDto,
}),
ApiResponse({
status: 204,
description: 'item 해제 성공',
}),
ApiResponse({
status: 400,
description: '유효하지 않은 요청 값 (userId 또는 itemId 오류)',
content: {
JSON: {
example: {
statusCode: 400,
message: 'Invalid userId or itemId provided',
error: 'Bad request',
},
},
},
}),
);
},

deleteUserItem: () => {
return applyDecorators(
ApiOperation({
summary: '특정 user의 특정 item 삭제',
description: '특정 user의 특정 item을 삭제한다',
}),
ApiResponse({
status: 204,
description: 'user의 item 삭제 성공',
}),
ApiResponse({
status: 400,
description: '유효하지 않은 요청 값 (userId 또는 itemId 오류)',
content: {
JSON: {
example: {
statusCode: 400,
message: 'Invalid userId or itemId provided',
error: 'Bad request',
},
},
},
}),
);
},

getUserItems: () => {
return applyDecorators(
ApiOperation({
summary: '특정 user의 items 조회',
description: '특정 user가 소유한 모든 items를 조회한다',
}),
ApiResponse({
status: 200,
description: 'user의 모든 items가 성공적으로 조회됨',
content: {
JSON: {
example: [
{
id: 2,
itemId: 3,
userId: 1,
isEquipped: false,
createdAt: '2024-11-05T10:30:15.000Z',
updatedAt: '2024-11-05T10:40:15.000Z',
},
{
id: 3,
itemId: 5,
userId: 1,
isEquipped: true,
createdAt: '2024-11-05T10:40:15.000Z',
updatedAt: '2024-11-05T10:40:15.000Z',
},
],
},
},
}),
ApiResponse({
status: 404,
description: '해당 user를 찾을 수 없음',
content: {
JSON: {
example: {
statusCode: 404,
message: 'User not found',
error: 'Not Found',
},
},
},
}),
);
},
};