Skip to main content

ProjectVersionsController

@lowcode/api


Class: ProjectVersionsController

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:37

Контроллер управления версиями проектов.

Базовый маршрут: /projects/:projectId/versions

Предоставляет операции:

  • получить список версий проекта;
  • получить конкретную версию по номеру;
  • создать новую версию;
  • откатить проект к существующей версии;
  • удалить сохранённую версию.

Важно: версии проекта — это полные снимки состояния DSL, позволяющие восстанавливать любую предыдущую точку.

Constructors

Constructor

new ProjectVersionsController(projectVersionsService): ProjectVersionsController

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:38

Parameters

projectVersionsService

ProjectVersionsService

Returns

ProjectVersionsController

Methods

create()

create(user, projectId, dto): Promise<ProjectVersionEntity>

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:97

Создать новую версию проекта.

Parameters

user

RequestUser

projectId

string

UUID проекта

dto

CreateProjectVersionDto

DSL-схема и необязательная метка версии

Returns

Promise<ProjectVersionEntity>

Созданная версия проекта

Route

POST /projects/:projectId/versions

Используется редактором (builder-web) для:

  • сохранения рабочих изменений;
  • автосохранений;
  • создания "срезов" перед компиляцией;
  • ручных версионных коммитов.

deleteVersion()

deleteVersion(user, projectId, versionId): Promise<void>

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:143

Удалить сохранённую версию проекта.

Parameters

user

RequestUser

projectId

string

UUID проекта

versionId

string

UUID версии для удаления

Returns

Promise<void>

Route

DELETE /projects/:projectId/versions/:versionId

Если удаляется версия, которая отмечена как текущая (currentVersionId), проект автоматически переключается на следующую доступную версию (по номеру) или сбрасывает ссылку, если версий больше не осталось.


getByNumber()

getByNumber(user, projectId, versionNumber): Promise<ProjectVersionEntity>

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:73

Получить конкретную версию проекта по номеру.

Parameters

user

RequestUser

projectId

string

UUID проекта

versionNumber

number

номер версии

Returns

Promise<ProjectVersionEntity>

Сущность версии проекта

Route

GET /projects/:projectId/versions/:versionNumber

Номер версии (versionNumber) — это автоинкрементное число, начиная с 1, соответствующее порядку сохранений.


list()

list(user, projectId): Promise<ProjectVersionEntity[]>

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:53

Получить список всех версий проекта.

Parameters

user

RequestUser

projectId

string

UUID проекта

Returns

Promise<ProjectVersionEntity[]>

Массив версий проекта

Route

GET /projects/:projectId/versions

Список сортируется по убыванию:

  • новейшая версия первой,
  • далее по номеру версии.

rollback()

rollback(user, projectId, versionId): Promise<ProjectVersionEntity>

Defined in: apps/api/src/modules/project-versions/project-versions.controller.ts:122

Откатить проект к существующей версии.

Parameters

user

RequestUser

projectId

string

UUID проекта

versionId

string

UUID версии, на которую выполняется откат

Returns

Promise<ProjectVersionEntity>

Версия, на которую выполнен откат

Route

POST /projects/:projectId/versions/:versionId/rollback

Эта операция:

  • обновляет currentVersionId проекта;
  • НЕ создает новую версию,
  • возвращает данные выбранной версии.

Используется для undo/restore в истории версий.