master
Add submission endpoints - Добавлен submission эндпоинт, который позволяет отправить ответ на созданную форму; - Добавлен my-submission эндпоинт, позволяющий получить все отвечене формы; - Добавлен декоратор is-non-owner.decorator, пропускающий проверку принадлежности к указанным formId, fieldId, optionId; - Проверка is-non-owner.decorator внедрена в form-owner.guard; - Исправлены другие неточности и комментарии.
Add docs - Добавлена полная валидация dto полей; - update-form.dto теперь полностью наследуется от create-form.dto; - Добавлена полная валидация эндпоинтов; - Исправлены exception и их описание; - Добавлено явное возвращение типов для каждого endpoints; - Добавлена явная проверка наличия получаемой формы в getById; - Исправлено описание ошибок в form-owner.guard и auth.guard.
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 field module - Изменена концепция работы Формы. - Раньше: все обновление происходило одним запросом в update form; - Сейчас: обновление формы происходит в update form, обновление поля и options происходят в update field, в стиле Yandex form; - Добавлен field модуль и эндпоинты; - Удалена логика создания/обновления/удаления fields и options в form; - Body, Param, Query - теперь явно передают идентификаторы formId или fieldId, для корректной работы гуарда form-owner.guard; - Добавлен form-owner.guard, который проверяет наличие формы по такому id, и принадлежность к пользователю который делает запрос;
Race condition fix - Исправлена потенциальная ошибка которая может вызвать непредвиденную ошибку, если придет 2 запроса на регистрацию одного email адреса.