ProjectsService
Class: ProjectsService
Defined in: apps/api/src/modules/projects/projects.service.ts:20
Сервис CRUD-операций над проектами.
Работает поверх Prisma и отвечает за:
- создание проектов;
- получение списка и отдельного проекта;
- обновление полей проекта;
- удаление проекта вместе с его версиями.
Этот сервис оперирует только метаданными проекта — сами DSL-схемы целиком хранятся в ProjectVersion.
Constructors
Constructor
new ProjectsService(
prisma):ProjectsService
Defined in: apps/api/src/modules/projects/projects.service.ts:21
Parameters
prisma
Returns
ProjectsService
Methods
create()
create(
dto):Promise<Project>
Defined in: apps/api/src/modules/projects/projects.service.ts:94
Создать новый проект.
Parameters
dto
DTO с названием и описанием
Returns
Promise<Project>
созданный проект
Route
POST /projects
Базовое поведение — создать запись в таблице Project
без начальной версии (см. комментарии в коде для расширения).
findAll()
findAll():
Promise<Project[]>
Defined in: apps/api/src/modules/projects/projects.service.ts:54
Получить список всех проектов.
Returns
Promise<Project[]>
Route
GET /projects
Возвращает все проекты, отсортированные по дате создания (новые сверху).
findOne()
findOne(
id):Promise<Project>
Defined in: apps/api/src/modules/projects/projects.service.ts:71
Получить один проект по ID.
Parameters
id
string
UUID проекта
Returns
Promise<Project>
Route
GET /projects/:id
Если проект не найден — выбрасывается NotFoundException.
remove()
remove(
id):Promise<void>
Defined in: apps/api/src/modules/projects/projects.service.ts:150
Удалить проект и все его версии.
Parameters
id
string
UUID проекта
Returns
Promise<void>
Route
DELETE /projects/:id
Логика:
- Проверка существования проекта (чтобы вернуть корректный 404).
- Первым делом удаляются версии проекта (из-за FK-ограничений в БД).
- Удаляется сам проект.
update()
update(
id,dto):Promise<Project>
Defined in: apps/api/src/modules/projects/projects.service.ts:118
Обновить основные поля проекта.
Поля обновляются частично (PATCH): если какое-то поле отсутствует в DTO, оно остаётся прежним.
Parameters
id
string
UUID проекта
dto
набор изменяемых полей
Returns
Promise<Project>
Route
PATCH /projects/:id