Trowel Academy
Acciones

#Proyectos y series

La API pública permite listar proyectos, consultar su ficha y mantenerlos desde una integración. El listado devuelve la vista simple del mantenimiento. El detalle incluye datos generales, condiciones contractuales, fiscalidad, porcentajes, moneda, fechas, ubicación, cliente, estado, tipo de proyecto y coordenadas GPS, incluida su precisión.

#Operaciones

  • GET /api/public/v1/projects y GET /api/public/v1/projects/{id} requieren projects:read.
  • POST /api/public/v1/projects, PUT /api/public/v1/projects/{id}, la desactivación, el borrado y el clonado requieren projects:write.
  • GET /api/public/v1/numbering-lines y GET /api/public/v1/numbering-lines/{id} requieren numbering-lines:read. Usa scope=project para series de proyectos y scope=daily-report para series de partes. El valor predeterminado es project.

Las listas usan limit, cursor y sort como el resto de la API V1. Consulta Paginación y errores.

El listado de proyectos se puede filtrar por code, name, clientId, projectStateId, active, search y modifiedSince. El de series admite scope, active, default, search y modifiedSince.

#Código y serie al crear

Hay tres formas de asignar el código:

  1. Envía code sin numberingLineId para usar un código manual.
  2. Envía numberingLineId para generar el código con una serie activa de proyectos. La serie indicada tiene prioridad sobre code.
  3. Omite ambos campos para usar la serie activa marcada como predeterminada para proyectos.

La petición falla si no hay código manual ni serie predeterminada válida. Consultar una serie no reserva un número. El número solo avanza al crear el proyecto dentro de la misma operación.

#Edición y desactivación

PUT /api/public/v1/projects/{id} reemplaza los campos editables documentados en el esquema OpenAPI. El código es obligatorio en la edición.

POST /api/public/v1/projects/{id}/deactivate es idempotente y responde 204, también si el proyecto ya estaba inactivo.

#Borrado

DELETE /api/public/v1/projects/{id} aplica las mismas reglas que el mantenimiento web. Si el proyecto no está siendo usado se elimina y devuelve:

{ "outcome": "deleted" }

Si tiene datos que impiden eliminarlo, se conserva desactivado:

{ "outcome": "deactivated" }

#Clonado

POST /api/public/v1/projects/{id}/clone recibe los datos del nuevo proyecto, la numeración y las opciones de clonado disponibles en el mantenimiento.

Una clonación ligera termina en la petición y responde 201. Las opciones que requieren trabajo en segundo plano responden 202 con la ficha del nuevo proyecto. En ese caso, conserva su id y consulta GET /api/public/v1/projects/{id} hasta que cloneStateId deje de indicar que está clonando. Un 202 confirma que el trabajo se ha aceptado, no que haya terminado.

⌕Esc

Escribe para buscar en toda la Academy.