Files
dating-app-backend/src/modules/feed/feed.controller.ts
Oscar cd98f04987 feat(database-schema): добавляет ссылку на активный чат в схему профиля пользователя
 feat(likes.service): обновляет логику создания лайков с учетом активного чата

 feat(likes.module): импортирует модуль Gateways для работы с чатами

 feat(feed.service): добавляет условие для фильтрации профилей без активного чата

 feat(storage.service): устанавливает политику доступа к бакету S3 для получения объектов

 feat(likes-response.dto): добавляет поле чата в ответ на лайк

 feat(media.controller): добавляет описание для загрузки медиафайлов

 feat(chat.service): добавляет возможность закрытия чата с отчетом или сообщением

 feat(chat.controller): обновляет метод закрытия чата для обработки отчетов

 feat(app.module): добавляет модуль Dev для разработки в не продакшн среде
2026-06-09 15:39:38 +03:00

32 lines
1.2 KiB
TypeScript

import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiExtraModels, ApiOkResponse, ApiOperation, ApiTags, getSchemaPath } from '@nestjs/swagger';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { FeedFilterDto } from './dto/feed-filter.dto';
import { FeedService } from './feed.service';
import { ProfileResponseDto } from '../profiles/dto/profile-response.dto';
@ApiTags('feed')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@ApiExtraModels(ProfileResponseDto)
@Controller('feed')
export class FeedController {
constructor(private readonly feedService: FeedService) {}
@Get()
@ApiOperation({ summary: 'Get filtered feed (requires profileId)' })
@ApiOkResponse({
schema: {
properties: {
items: { type: 'array', items: { $ref: getSchemaPath(ProfileResponseDto) } },
page: { type: 'number', example: 1 },
limit: { type: 'number', example: 20 },
},
required: ['items', 'page', 'limit'],
},
})
getFeed(@CurrentUser('id') userId: string, @Query() filter: FeedFilterDto) {
return this.feedService.getFeed(userId, filter);
}
}