[FEAT] Add onboarding wizard with visura camerale and CertiSource integration
- New 5-step onboarding wizard (onboarding.html) replacing setup-org.html - Step 1: Choose data source (Upload Visura / CertiSource / Manual) - Step 2: PDF upload with AI extraction or CertiSource P.IVA lookup - Step 3: Verify/complete company data with NIS2 sector mapping - Step 4: User profile completion - Step 5: NIS2 classification (Essential/Important) with summary - OnboardingController with upload-visura, fetch-company, complete endpoints - VisuraService with Claude AI PDF extraction and ATECO-to-NIS2 mapping - CertiSource API integration for automatic company data retrieval - Updated login/register redirects to point to new onboarding wizard Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -238,6 +238,30 @@ class NIS2API {
|
||||
generateComplianceReport() { return this.get('/audit/report'); }
|
||||
getAuditLogs(params = {}) { return this.get('/audit/logs?' + new URLSearchParams(params)); }
|
||||
getIsoMapping() { return this.get('/audit/iso27001-mapping'); }
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
// Onboarding
|
||||
// ═══════════════════════════════════════════════════════════════════
|
||||
|
||||
async uploadVisura(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('visura', file);
|
||||
const headers = { 'Authorization': 'Bearer ' + this.token };
|
||||
if (this.orgId) headers['X-Organization-Id'] = this.orgId;
|
||||
try {
|
||||
const response = await fetch(this.baseUrl + '/onboarding/upload-visura', {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: formData,
|
||||
});
|
||||
return response.json();
|
||||
} catch (error) {
|
||||
return { success: false, message: 'Errore di connessione al server' };
|
||||
}
|
||||
}
|
||||
|
||||
fetchCompany(vatNumber) { return this.post('/onboarding/fetch-company', { vat_number: vatNumber }); }
|
||||
completeOnboarding(data) { return this.post('/onboarding/complete', data); }
|
||||
}
|
||||
|
||||
// Singleton globale
|
||||
|
||||
Reference in New Issue
Block a user