Skip to content
This repository was archived by the owner on Jan 28, 2026. It is now read-only.

Commit 7cdea2d

Browse files
committed
feat: Add quest archiving and unarchiving functionality with corresponding API endpoints
1 parent 5c2a907 commit 7cdea2d

4 files changed

Lines changed: 966 additions & 635 deletions

File tree

src/quest/quest.controller.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,5 +252,27 @@ export class QuestController {
252252
) {
253253
return this.questService.updateRequirementCurrentValue(questId, stepIndex, updateRequirementDto);
254254
}
255+
256+
@Patch(':id/archive')
257+
@UseGuards(JwtAuthGuard)
258+
@ApiBearerAuth()
259+
@ApiOperation({ summary: 'Архивировать квест' })
260+
@ApiResponse({ status: 200, description: 'Квест успешно архивирован' })
261+
@ApiResponse({ status: 401, description: 'Не авторизован' })
262+
@ApiResponse({ status: 404, description: 'Квест не найден' })
263+
archiveQuest(@Param('id', ParseIntPipe) id: number) {
264+
return this.questService.archiveQuest(id);
265+
}
266+
267+
@Patch(':id/unarchive')
268+
@UseGuards(JwtAuthGuard)
269+
@ApiBearerAuth()
270+
@ApiOperation({ summary: 'Разархивировать квест' })
271+
@ApiResponse({ status: 200, description: 'Квест успешно разархивирован' })
272+
@ApiResponse({ status: 401, description: 'Не авторизован' })
273+
@ApiResponse({ status: 404, description: 'Квест не найден' })
274+
unarchiveQuest(@Param('id', ParseIntPipe) id: number) {
275+
return this.questService.unarchiveQuest(id);
276+
}
255277
}
256278

src/quest/quest.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ import { Module } from '@nestjs/common';
22
import { QuestService } from './quest.service';
33
import { QuestController } from './quest.controller';
44
import { QuestEventsService } from './quest.events';
5+
import { QuestRepository } from './quest.repository';
56
import { DatabaseModule } from '../database/database.module';
67

78
@Module({
89
imports: [DatabaseModule],
910
controllers: [QuestController],
10-
providers: [QuestService, QuestEventsService],
11-
exports: [QuestService, QuestEventsService],
11+
providers: [QuestService, QuestEventsService, QuestRepository],
12+
exports: [QuestService, QuestEventsService, QuestRepository],
1213
})
1314
export class QuestModule {}
1415

0 commit comments

Comments
 (0)