FactuGES_ERP/modules/onboarding/src/api/infrastructure/express/get-initial-onboarding-status.controller.ts
David dd6d33366e feat(onboarding): implement initial onboarding process and validation
- Add tests for initial company input validation.
- Create hooks for managing initial onboarding status and provisioning.
- Implement orchestration for completing onboarding and restoring session.
- Develop UI for the initial onboarding page with form handling.
- Enhance routing to include onboarding navigation resolution.
- Introduce error handling for unprovisioned onboarding scenarios.
- Establish API endpoints for onboarding status and completion.
- Validate onboarding request payloads with appropriate schemas.
- Update onboarding module composition to include provisioning services.
2026-09-09 11:19:41 +02:00

24 lines
770 B
TypeScript

import { ExpressController, requireAuthenticatedGuard } from "@erp/core/api";
import type { GetInitialOnboardingStatusUseCase } from "../../application";
export class GetInitialOnboardingStatusController extends ExpressController {
constructor(private readonly useCase: GetInitialOnboardingStatusUseCase) {
super();
this.registerGuards(requireAuthenticatedGuard());
}
protected async executeImpl() {
const user = this.getUser();
if (!user?.userId) {
return this.unauthorizedError("Unauthorized");
}
const result = await this.useCase.execute({ accountId: user.userId });
return result.match(
(value) => this.ok({ status: value.status, company_id: value.companyId }),
(error) => this.handleError(error)
);
}
}