master
Race condition fix - Исправлена потенциальная ошибка которая может вызвать непредвиденную ошибку, если придет 2 запроса на регистрацию одного email адреса.
Add option module - Вся логика работы с field-option была перенесена из field module в специальный модуль field-option; - Добавлен field-option модуль; - из create-field.dto и убрана логика работы с options; - create-field-option.dto и update-field-option.dto были перенесены в модуль field-option; - В form-owner.guard добавлена проверка принадлежности optionId к пользователю; - Метод normalizeOrder перенесен из field.service в math.utils.
Add docs - Добавлена полная валидация dto полей; - update-form.dto теперь полностью наследуется от create-form.dto; - Добавлена полная валидация эндпоинтов; - Исправлены exception и их описание; - Добавлено явное возвращение типов для каждого endpoints; - Добавлена явная проверка наличия получаемой формы в getById; - Исправлено описание ошибок в form-owner.guard и auth.guard.
Add send optional answer - Добавлена возможность отправки пустого массива answer, если создатель формы не добавил никаких вопросов.
Add auth - Установлены зависимости @nestjs/jwt, bcrypt, @types/bcrypt; - Схема user была обновлена, добавлено поле "password"; - Поле password было исключено из выдачи без явного указания его в select в prisma.service.ts; - Добавлен модуль Auth, вместе с эндпоинтами /login, /register, /refresh; - Создан auth.guard файл, проверяющий валидность токена; - auth.guard внедрен как глобальный гуард; - Добавлены вспомогательные типы jwt-request, jwt-response, auth-request, auth-tokens; - Добавлен декоратор IsPublic(), установка которого позволяет пропуска выполнение auth.guard; - в .env добавлено поле JWT_SECRET, для работы с jwt; - Включено и внедрено использование BearerAuth, от swagger. Позволяющее гибко передавать токен в запросах.
Add prisma and init user schema - Добавлены пакеты @prisma/adapter-pg, @prisma/clint, pg, prisma в package.json; - Инициализирована базовая структура Prisma (prisma schema, prisma.config.ts, .gitignore); - Добавлен и настроен модуль prisma, для работы с Prisma; - В .env добавлены значения DATABASE_URL. Для корректной работы значений, включен expandVariables в app-config.module; - Включена опция project в eslint.config, для корректного линтинга Prisma типов; - Добавлена Init миграция user.schema; - Добавлен тестовый эндпоинт для получения пользователей.