Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions Workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,20 +83,20 @@ npm start
### Переменные окружения
Проект использует переменные окружения для конфигурации. Создайте файл `.env` в корне проекта на основе `.env.example`.

`PORT` -- Порт HTTP-сервера. По умолчанию - `3000`
`SALT` -- Соль для хеширования паролей
`ME_USER` -- имя пользователя для входа в интерфейс Mongo Express
`ME_PASSWORD` -- пароль для входа в интерфейс Mongo Express.
`MONGO_EXPRESS_PORT` -- порт, на котором доступен Mongo Express
`DB_USER` -- Пользователь для подключения к БД
`DB_PASSWORD` -- Пароль пользователя БД
`DB_HOST` -- Адрес сервера базы данных
`DB_PORT` -- Порт базы данных
`DB_NAME` -- Имя базы данных
`JWT_SECRET` -- Секретный ключ для подписи JWT
`UPLOAD_FILE_DIRECTORY` - Путь для загрузки файлов пользователями
`HOST` -- Хост сервера
`STATIC_DIRECTORY_PATH` -- Путь к директории со статикой
`PORT`=3000 — Порт HTTP-сервера.
`SALT`=some_salt — Соль для хеширования паролей.
`ME_USER`=admin — Имя пользователя для входа в интерфейс Mongo Express.
`ME_PASSWORD`=admin — Пароль для входа в интерфейс Mongo Express.
`MONGO_EXPRESS_PORT`=8081 — Порт, на котором доступен Mongo Express.
`DB_USER`=app — Пользователь для подключения к базе данных.
`DB_PASSWORD`=secret — Пароль пользователя базы данных.
`DB_HOST`=localhost — Адрес сервера базы данных.
`DB_PORT`=27017 — Порт базы данных.
`DB_NAME`=six-cities — Имя базы данных.
`JWT_SECRET`=super_secret_key — Секретный ключ для подписи JWT.
`UPLOAD_FILE_DIRECTORY`=uploads — Путь для загрузки файлов пользователями.
`HOST`=localhost — Хост сервера.
`STATIC_DIRECTORY_PATH`=public — Путь к директории со статикой.
### Остальное

Все остальные файлы в проекте являются служебными. Пожалуйста, не удаляйте и не изменяйте их самовольно. Только если того требует задание или наставник.
13 changes: 10 additions & 3 deletions specification/specification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,12 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/UserFavoriteOffers'
'400':
description: Некорректные данные
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
'401':
description: Пользователь не авторизован
content:
Expand Down Expand Up @@ -475,18 +481,19 @@ paths:
schema:
$ref: '#/components/schemas/ServerError'

/offers/premium/{city}:
/offers/premium:
get:
summary: Получить список премиум предложений
operationId: getPremiumOffers
security: []
tags: [Offers]
parameters:
- in: path
name: city
- name: city
in: query
required: true
schema:
type: string
example: 'Paris'
responses:
'200':
description: Предложения успешно получены
Expand Down
8 changes: 7 additions & 1 deletion src/shared/modules/user/user-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { CreateUserDto, LoginUserDTO } from './dto/user-dto.js';
import { AuthServiceInterface, UserNotFoundException } from '../auth/index.js';
import { PrivateRouteMiddleware } from '../../libs/rest/middleware/private-route.middleware.js';
import { UploadFileMiddleware } from '../../libs/rest/middleware/upload-file.middleware.js';
import { ValidateObjectIdMiddleware } from '../../libs/rest/middleware/validate-objectid.middleware.js';

export class UserController extends BaseController {
constructor(
Expand Down Expand Up @@ -48,7 +49,10 @@ export class UserController extends BaseController {
path: '/:userId/favorite',
method: HttpMethod.Get,
handler: this.getFavorites,
middlewares: [new PrivateRouteMiddleware()],
middlewares: [
new PrivateRouteMiddleware(),
new ValidateObjectIdMiddleware('userId'),
],
});

this.addRoute({
Expand All @@ -60,6 +64,8 @@ export class UserController extends BaseController {
this.config.get('UPLOAD_FILE_DIRECTORY'),
'avatar',
),
new PrivateRouteMiddleware(),
new ValidateObjectIdMiddleware('userId'),
],
});

Expand Down
Loading