61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Body,
|
|
Patch,
|
|
Param,
|
|
Delete,
|
|
ParseIntPipe,
|
|
} from '@nestjs/common';
|
|
import { ArticlesService } from './articles.service';
|
|
import { CreateArticleDto } from './dto/create-article.dto';
|
|
import { UpdateArticleDto } from './dto/update-article.dto';
|
|
import { ApiCreatedResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
|
import { ArticleEntity } from './entities/article.entity';
|
|
|
|
@Controller('articles')
|
|
@ApiTags('articles')
|
|
export class ArticlesController {
|
|
constructor(private readonly articlesService: ArticlesService) {}
|
|
|
|
@Post()
|
|
@ApiCreatedResponse({ type: ArticleEntity })
|
|
create(@Body() createArticleDto: CreateArticleDto) {
|
|
return this.articlesService.create(createArticleDto);
|
|
}
|
|
|
|
@Get()
|
|
@ApiOkResponse({ type: ArticleEntity, isArray: true })
|
|
findAll() {
|
|
return this.articlesService.findAll();
|
|
}
|
|
|
|
@Get('drafts')
|
|
@ApiOkResponse({ type: ArticleEntity, isArray: true })
|
|
findDrafts() {
|
|
return this.articlesService.findDrafts();
|
|
}
|
|
|
|
@Get(':id')
|
|
@ApiOkResponse({ type: ArticleEntity })
|
|
findOne(@Param('id', ParseIntPipe) id: number) {
|
|
return this.articlesService.findOne(id);
|
|
}
|
|
|
|
@Patch(':id')
|
|
@ApiCreatedResponse({ type: ArticleEntity })
|
|
update(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() updateArticleDto: UpdateArticleDto,
|
|
) {
|
|
return this.articlesService.update(id, updateArticleDto);
|
|
}
|
|
|
|
@Delete(':id')
|
|
@ApiOkResponse({ type: ArticleEntity })
|
|
remove(@Param('id', ParseIntPipe) id: number) {
|
|
return this.articlesService.remove(id);
|
|
}
|
|
}
|