58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Put,
|
|
Delete,
|
|
Body,
|
|
Param,
|
|
Query,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { WikiService } from './wiki.service';
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
|
import {
|
|
ApiTags,
|
|
ApiBearerAuth,
|
|
ApiOperation,
|
|
ApiQuery,
|
|
} from '@nestjs/swagger';
|
|
|
|
@ApiTags('Admin - مدیریت دانشنامه (اصطلاحات علمی)')
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Controller('admin/wiki')
|
|
export class WikiController {
|
|
constructor(private readonly wikiService: WikiService) {}
|
|
|
|
@Get()
|
|
@ApiOperation({ summary: 'لیست اصطلاحات دانشنامه' })
|
|
@ApiQuery({ name: 'page', required: false, description: 'شماره صفحه' })
|
|
@ApiQuery({ name: 'limit', required: false, description: 'تعداد آیتمها' })
|
|
@ApiQuery({ name: 'search', required: false, description: 'جستجو' })
|
|
async getTerms(@Query() query: any) {
|
|
return this.wikiService.getTerms(query);
|
|
}
|
|
|
|
@Post()
|
|
@ApiOperation({ summary: 'ایجاد اصطلاح جدید' })
|
|
async createTerm(@Body() body: any) {
|
|
const data = await this.wikiService.createTerm(body);
|
|
return { success: true, data };
|
|
}
|
|
|
|
@Put(':key')
|
|
@ApiOperation({ summary: 'ویرایش اصطلاح' })
|
|
async updateTerm(@Param('key') key: string, @Body() body: any) {
|
|
const data = await this.wikiService.updateTerm(key, body);
|
|
return { success: true, data };
|
|
}
|
|
|
|
@Delete(':key')
|
|
@ApiOperation({ summary: 'حذف اصطلاح' })
|
|
async deleteTerm(@Param('key') key: string) {
|
|
await this.wikiService.deleteTerm(key);
|
|
return { success: true };
|
|
}
|
|
}
|