Skip to main content

ProjectsService

@lowcode/api


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

PrismaService

Returns

ProjectsService

Methods

create()

create(dto): Promise<Project>

Defined in: apps/api/src/modules/projects/projects.service.ts:94

Создать новый проект.

Parameters

dto

CreateProjectDto

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

Логика:

  1. Проверка существования проекта (чтобы вернуть корректный 404).
  2. Первым делом удаляются версии проекта (из-за FK-ограничений в БД).
  3. Удаляется сам проект.

update()

update(id, dto): Promise<Project>

Defined in: apps/api/src/modules/projects/projects.service.ts:118

Обновить основные поля проекта.

Поля обновляются частично (PATCH): если какое-то поле отсутствует в DTO, оно остаётся прежним.

Parameters

id

string

UUID проекта

dto

UpdateProjectDto

набор изменяемых полей

Returns

Promise<Project>

Route

PATCH /projects/:id