Start integrating the onboarding flow with backend 10
This commit is contained in:
@@ -27,9 +27,12 @@ export class DataImportService {
|
||||
tenantId: string,
|
||||
file: File
|
||||
): Promise<ImportValidationResponse> {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
|
||||
return apiClient.uploadFile<ImportValidationResponse>(
|
||||
`${this.baseUrl}/${tenantId}/sales/import/validate-csv`,
|
||||
file
|
||||
formData
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,14 +5,16 @@ import { apiClient } from '../client';
|
||||
import { UserProgress, UpdateStepRequest } from '../types/onboarding';
|
||||
|
||||
export class OnboardingService {
|
||||
private readonly baseUrl = '/onboarding';
|
||||
private readonly baseUrl = '/users/me/onboarding';
|
||||
|
||||
async getUserProgress(userId: string): Promise<UserProgress> {
|
||||
return apiClient.get<UserProgress>(`${this.baseUrl}/progress/${userId}`);
|
||||
// Backend uses current user from auth token, so userId parameter is ignored
|
||||
return apiClient.get<UserProgress>(`${this.baseUrl}/progress`);
|
||||
}
|
||||
|
||||
async updateStep(userId: string, stepData: UpdateStepRequest): Promise<UserProgress> {
|
||||
return apiClient.put<UserProgress>(`${this.baseUrl}/progress/${userId}/step`, stepData);
|
||||
// Backend uses current user from auth token, so userId parameter is ignored
|
||||
return apiClient.put<UserProgress>(`${this.baseUrl}/step`, stepData);
|
||||
}
|
||||
|
||||
async markStepCompleted(
|
||||
@@ -20,14 +22,19 @@ export class OnboardingService {
|
||||
stepName: string,
|
||||
data?: Record<string, any>
|
||||
): Promise<UserProgress> {
|
||||
return apiClient.post<UserProgress>(`${this.baseUrl}/progress/${userId}/complete`, {
|
||||
// Backend uses current user from auth token, so userId parameter is ignored
|
||||
// Backend expects UpdateStepRequest format for completion
|
||||
return apiClient.put<UserProgress>(`${this.baseUrl}/step`, {
|
||||
step_name: stepName,
|
||||
completed: true,
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
async resetProgress(userId: string): Promise<UserProgress> {
|
||||
return apiClient.post<UserProgress>(`${this.baseUrl}/progress/${userId}/reset`);
|
||||
// Note: Backend doesn't have a reset endpoint, this might need to be implemented
|
||||
// For now, we'll throw an error
|
||||
throw new Error('Reset progress functionality not implemented in backend');
|
||||
}
|
||||
|
||||
async getStepDetails(stepName: string): Promise<{
|
||||
@@ -36,7 +43,8 @@ export class OnboardingService {
|
||||
dependencies: string[];
|
||||
estimated_time_minutes: number;
|
||||
}> {
|
||||
return apiClient.get(`${this.baseUrl}/steps/${stepName}`);
|
||||
// This endpoint doesn't exist in backend, we'll need to implement it or mock it
|
||||
throw new Error('getStepDetails functionality not implemented in backend');
|
||||
}
|
||||
|
||||
async getAllSteps(): Promise<Array<{
|
||||
@@ -45,7 +53,23 @@ export class OnboardingService {
|
||||
dependencies: string[];
|
||||
estimated_time_minutes: number;
|
||||
}>> {
|
||||
return apiClient.get(`${this.baseUrl}/steps`);
|
||||
// This endpoint doesn't exist in backend, we'll need to implement it or mock it
|
||||
throw new Error('getAllSteps functionality not implemented in backend');
|
||||
}
|
||||
|
||||
async getNextStep(): Promise<{ step: string; completed?: boolean }> {
|
||||
// This endpoint exists in backend
|
||||
return apiClient.get(`${this.baseUrl}/next-step`);
|
||||
}
|
||||
|
||||
async canAccessStep(stepName: string): Promise<{ can_access: boolean; reason?: string }> {
|
||||
// This endpoint exists in backend
|
||||
return apiClient.get(`${this.baseUrl}/can-access/${stepName}`);
|
||||
}
|
||||
|
||||
async completeOnboarding(): Promise<{ success: boolean; message: string }> {
|
||||
// This endpoint exists in backend
|
||||
return apiClient.post(`${this.baseUrl}/complete`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user