5.0 KiB
5.0 KiB
🚀 SCRIPT AUTOMATICI IMPORT NETGESCON
📋 OVERVIEW
Script Node.js per automatizzare l'import dei dati dal vecchio sistema Gescon a NetGescon tramite API.
🔧 SETUP
1. Prerequisiti
# Installa Node.js e npm
node --version # >= 14.0.0
npm --version # >= 6.0.0
# Installa dipendenze
npm install axios
2. Configurazione
# Copia file environment
cp .env.example .env
# Modifica configurazione API
nano .env
3. Variabili Environment
NETGESCON_API_URL=http://localhost:8000/api/v1
NETGESCON_EMAIL=admin@netgescon.local
NETGESCON_PASSWORD=your_password
🎯 SCRIPT DISPONIBILI
validation-checker.js
Validazione preliminare dati senza import
# Esecuzione
node validation-checker.js
# Output
- validation-report-{timestamp}.json
- Log validazione su console
import-runner.js
Import automatico completo via API
# Solo validazione (no import)
node import-runner.js --validate-only
# Import solo amministratori
node import-runner.js --step=admin
# Import solo stabili
node import-runner.js --step=stabili
# Import completo
node import-runner.js
📊 PROCESSO STEP-BY-STEP
Step 1: Validazione Pre-Import
# Controlla tutti i dati prima di iniziare
node validation-checker.js
Controlla:
- Formati codici fiscali
- Validità email e PEC
- Formati IBAN
- CAP e province italiane
- Riferimenti incrociati amministratori-stabili
Step 2: Test Validazione API
# Test chiamata API senza modifiche
node import-runner.js --validate-only
Verifica:
- Connessione API
- Autenticazione
- Validazione remota dati
- Mappatura campi corretta
Step 3: Import Amministratori
# Import solo amministratori
node import-runner.js --step=admin
Risultato:
- Creazione utenti sistema
- Assegnazione ruoli
- Generazione password temporanee
Step 4: Import Stabili
# Import stabili (dopo amministratori)
node import-runner.js --step=stabili
Risultato:
- Creazione stabili
- Collegamento amministratori
- Configurazione dati bancari
📁 FILE GENERATI
Log Files
import.log- Log dettagliato operazionivalidation-report-{timestamp}.json- Report validazioneimport-report-{timestamp}.json- Report import finale
Struttura Log
[2025-01-08T10:30:15.123Z] [INFO] Avvio import...
[2025-01-08T10:30:16.456Z] [INFO] Login API completato
[2025-01-08T10:30:17.789Z] [INFO] Amministratori importati: 1
[2025-01-08T10:30:18.012Z] [ERROR] Errore validazione stabile...
🔍 MONITORING E DEBUG
Verifica Stato
# Durante import - altro terminale
tail -f import.log
# Controlla API server
curl http://localhost:8000/api/v1/auth/login
Recovery da Errori
# Re-run solo step falliti
node import-runner.js --step=stabili
# Debug modalità
DEBUG_MODE=true node import-runner.js --validate-only
⚡ ESEMPI USO
Workflow Completo
# 1. Validazione locale
node validation-checker.js
# 2. Test API
node import-runner.js --validate-only
# 3. Import step-by-step
node import-runner.js --step=admin
node import-runner.js --step=stabili
# 4. Verifica risultati
grep "importati" import.log
Solo Validazione
# Controllo rapido dati
node validation-checker.js | grep ERROR
# Test connessione API
node import-runner.js --validate-only --step=admin
🔧 TROUBLESHOOTING
Errori Comuni
Connection Refused
# Verifica server Laravel attivo
php artisan serve --host=0.0.0.0 --port=8000
# Test connessione
curl http://localhost:8000/api/v1/auth/login
Authentication Failed
# Verifica credenziali in .env
cat .env | grep NETGESCON_
# Test login manuale
curl -X POST http://localhost:8000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@netgescon.local","password":"password"}'
Validation Errors
# Controlla dettagli errori
node validation-checker.js > validation-output.txt
grep "ERROR" validation-output.txt
# Fix dati in JSON files
nano ../01-GESCON/amministratori.json
📈 PERFORMANCE
Tempi Stimati
- Validazione: ~5 secondi
- Import 1 amministratore: ~2 secondi
- Import 7 stabili: ~10 secondi
- Totale: ~20 secondi
Ottimizzazione
- Batch size: 50 record/volta
- Timeout: 30 secondi/richiesta
- Retry: 3 tentativi automatici
🔒 SICUREZZA
Best Practices
- Password sicure in .env (non committare)
- Token API con scadenza
- Log senza dati sensibili
- Backup prima import
Rollback
-- In caso di problemi
DELETE FROM stabili WHERE created_at > '2025-01-08 10:30:00';
DELETE FROM users WHERE email LIKE '%@import.temp';
🎯 NEXT STEPS
Dopo import amministratori e stabili:
- Import unità immobiliari
- Import anagrafica condomini
- Import dati contabilità
- Verifica integrità finale