- 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.
23 lines
689 B
TypeScript
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)
|
|
);
|
|
}
|
|
}
|