- WorkspaceService: path resolution, git init/clone, directory lifecycle (create/delete/exists), user and team root provisioning - ProjectBootstrapService: orchestrates DB record creation (via Brain) + workspace directory init in a single call - TeamsService: isMember, canAccessProject, findAll, findById, listMembers via Drizzle DB queries - WorkspaceController: POST /api/workspaces — auth-guarded project bootstrap endpoint - TeamsController: GET /api/teams, /:teamId, /:teamId/members, /:teamId/members/:userId - WorkspaceModule wired into AppModule - workspace.service.spec.ts: 5 unit tests for resolvePath (user, team, fallback, env var, default) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 lines
590 B
TypeScript
14 lines
590 B
TypeScript
import { Module } from '@nestjs/common';
|
|
import { WorkspaceService } from './workspace.service.js';
|
|
import { ProjectBootstrapService } from './project-bootstrap.service.js';
|
|
import { TeamsService } from './teams.service.js';
|
|
import { WorkspaceController } from './workspace.controller.js';
|
|
import { TeamsController } from './teams.controller.js';
|
|
|
|
@Module({
|
|
controllers: [WorkspaceController, TeamsController],
|
|
providers: [WorkspaceService, ProjectBootstrapService, TeamsService],
|
|
exports: [WorkspaceService, ProjectBootstrapService, TeamsService],
|
|
})
|
|
export class WorkspaceModule {}
|