- 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.
24 lines
770 B
TypeScript
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)
|
|
);
|
|
}
|
|
}
|