/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
apps/api/src/app/feeds/feeds.controller.ts
89 строк
3 KB
Adam Chmara
chore(root): apply biome formatter & linter fixes NV-6436 (#8838)
31 июл 2025, 14:59
Не верифицирован
31 июл 2025, 14:59
855fb8f
Код
Авторство
О чём код?
import { Body, ClassSerializerInterceptor, Controller, Delete, Get, Param, Post, UseInterceptors, } from '@nestjs/common'; import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { ApiExcludeController } from '@nestjs/swagger/dist/decorators/api-exclude-controller.decorator'; import { UserSessionData } from '@novu/shared'; import { RequireAuthentication } from '../auth/framework/auth.decorator'; import { ExternalApiAccessible } from '../auth/framework/external-api.decorator'; import { ApiCommonResponses, ApiResponse } from '../shared/framework/response.decorator'; import { UserSession } from '../shared/framework/user.decorator'; import { CreateFeedRequestDto } from './dtos/create-feed-request.dto'; import { FeedResponseDto } from './dtos/feed-response.dto'; import { CreateFeedCommand } from './usecases/create-feed/create-feed.command'; import { CreateFeed } from './usecases/create-feed/create-feed.usecase'; import { DeleteFeedCommand } from './usecases/delete-feed/delete-feed.command'; import { DeleteFeed } from './usecases/delete-feed/delete-feed.usecase'; import { GetFeedsCommand } from './usecases/get-feeds/get-feeds.command'; import { GetFeeds } from './usecases/get-feeds/get-feeds.usecase'; @ApiCommonResponses() @Controller('/feeds') @UseInterceptors(ClassSerializerInterceptor) @RequireAuthentication() @ApiTags('Feeds') @ApiExcludeController() export class FeedsController { constructor( private createFeedUsecase: CreateFeed, private getFeedsUsecase: GetFeeds, private deleteFeedsUsecase: DeleteFeed ) {} @Post('') @ApiResponse(FeedResponseDto, 201) @ApiOperation({ summary: 'Create feed', }) @ExternalApiAccessible() createFeed(@UserSession() user: UserSessionData, @Body() body: CreateFeedRequestDto): Promise<FeedResponseDto> { return this.createFeedUsecase.execute( CreateFeedCommand.create({ organizationId: user.organizationId, userId: user._id, environmentId: user.environmentId, name: body.name, }) ); } @Get('') @ApiResponse(FeedResponseDto, 200, true) @ApiOperation({ summary: 'Get feeds', }) @ExternalApiAccessible() getFeeds(@UserSession() user: UserSessionData): Promise<FeedResponseDto[]> { return this.getFeedsUsecase.execute( GetFeedsCommand.create({ organizationId: user.organizationId, userId: user._id, environmentId: user.environmentId, }) ); } @Delete('/:feedId') @ApiResponse(FeedResponseDto, 200, true) @ApiOperation({ summary: 'Delete feed', }) @ExternalApiAccessible() deleteFeedById(@UserSession() user: UserSessionData, @Param('feedId') feedId: string): Promise<FeedResponseDto[]> { return this.deleteFeedsUsecase.execute( DeleteFeedCommand.create({ environmentId: user.environmentId, organizationId: user.organizationId, userId: user._id, feedId, }) ); } }