managarten/services/mana-landing-builder/src/builder/builder.controller.ts
Till JS df0b849408 feat: add org landing page builder service
New service that generates static Astro landing pages for organizations
and deploys them to Cloudflare Pages at {slug}.mana.how.

Components:
- Landing Builder Service (NestJS, port 3030) with Astro template
- Admin UI in Manacore web dashboard at /organizations/[id]/landing
- TeamSection + ContactSection for shared-landing-ui
- Two org themes (classic dark, warm light)
- LandingPageConfig types in shared-types
- Docker + CI/CD integration for Mac Mini deployment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:20:10 +01:00

22 lines
690 B
TypeScript

import { Controller, Post, Body, Get, Logger, HttpCode } from '@nestjs/common';
import { BuilderService, type BuildResult } from './builder.service';
import { BuildLandingDto } from './dto/build-landing.dto';
@Controller()
export class BuilderController {
private readonly logger = new Logger(BuilderController.name);
constructor(private readonly builderService: BuilderService) {}
@Post('build')
@HttpCode(200)
async buildLanding(@Body() dto: BuildLandingDto): Promise<BuildResult> {
this.logger.log(`Build requested for org: ${dto.slug}`);
return this.builderService.build(dto);
}
@Get('health')
health() {
return { status: 'ok', service: 'mana-landing-builder' };
}
}