FactuGES_ERP/modules/onboarding/src/api/infrastructure/express/get-initial-onboarding-status.controller.ts
David bf1dd43c78 feat(onboarding): implement initial onboarding use cases and controllers
- Add GetInitialOnboardingStatusUseCase to retrieve onboarding status.
- Implement CompleteInitialOnboardingUseCase for completing onboarding.
- Create controllers for handling onboarding requests in Express.
- Introduce new repository methods for managing onboarding data.
- Set up dependency injection for onboarding services and use cases.
- Add tests for onboarding use cases and repository methods.
- Define request DTOs for onboarding operations with validation.
- Update module composition to include onboarding functionalities.
2026-09-08 23:41:23 +02:00

23 lines
689 B
TypeScript

import { ExpressController } from "@erp/core/api";
import type { GetInitialOnboardingStatusUseCase } from "../../application";
export class GetInitialOnboardingStatusController extends ExpressController {
constructor(private readonly useCase: GetInitialOnboardingStatusUseCase) {
super();
}
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)
);
}
}