✨ 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 для разработки в не продакшн среде
32 lines
1.2 KiB
TypeScript
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);
|
|
}
|
|
} |