# api-tracker-presenters API GraphQL y REST (OpenAPI) del tracker. - **Import**: `@task-stream/api/tracker/presenters` - **Capa**: `presenters` · **Tags**: `scope:api-tracker`, `type:presenters` ## Contenido - Resolvers `ProjectResolver`, `IssueResolver`, `CommentResolver`, `ReleaseResolver` y `SubscriptionResolver`; solo llaman a services. - Tipos, inputs (con `class-validator`) y enums de GraphQL (code-first). - `http/`: controladores REST `ProjectsController`, `IssuesController`, `CommentsController`, `ReleasesController` (mismos services), DTOs con `@nestjs/swagger` y `Refs` (proyectos y tickets por id o clave; añade a cada ticket sus transiciones permitidas según el workflow de su proyecto). - `common/settings.ts`: configuración del proyecto con las transiciones como lista (lo que viaja por GraphQL y REST). Operaciones disponibles: [GraphQL](../../../../docs/03-api.md#32-graphql) y [REST](../../../../docs/03-api.md#33-rest-con-openapi-para-otras-apps). ## Comandos ```sh npx nx lint api-tracker-presenters npx nx test api-tracker-presenters # Jest ``` Reglas de dependencia entre capas: [Arquitectura](../../../../docs/02-arquitectura.md#21-capas-hexagonales).