opencity-labs / cid-pat-integrations
Strumenti per le integrazioni Progetto CID PAT
1.2.0
2025-04-16 19:31 UTC
Requires
- php: >= 8.3.0
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^7.9
- psr/log: ^3.0
README
EventLink
Gli Eventi pubblicati da APPA sul rispettivo Portale sono importati nel Portale PaT. L’evento di APPA deve essere ricercabile e mostrato nella sezione Eventi del Portale PAT, al pari Eventi caricati sul Portale PAT, e nelle liste automatiche-paginate-query del Portale. L’evento di APPA deve essere relazionabile ad altri oggetti del Portale PAT, al pari degli Eventi caricati nel Portale.
Esempio di utilizzo
use Opencontent\EventLink\EventPusher;
$pusher = new EventPusher(
eventId: $eventId,
targetUrl: $siteUrl,
username: $username,
password: $password,
eventiPath: '/api/openapi/news/eventi',
sourceUrl: 'https://www.appa.provincia.tn.it'
);
try{
return $pusher->parse();
} catch(Throwable $e) {
echo 'Error: ' . $e->getMessage());
}
Organigramma
- In questo documento il Manuale e le istruzioni operative per il servizio di integrazione
- Le modifiche all’API sono sempre documentate in questo doc
- In questa tabella vengono riepilogati i Ruoli dei dipendenti, per come arrivano dal flusso e per come devono essere mostrati sul Portale.
Esempio di utilizzo
use Opencontent\Organigramma\ApiClient;
use Opencontent\Organigramma\Client;
use Opencontent\Organigramma\Logger;
use Opencontent\Organigramma\Persona;
use Opencontent\Organigramma\PersonaActions;
use Opencontent\Organigramma\Ruolo;
use Opencontent\Organigramma\RuoloActions;
use Opencontent\Organigramma\Struttura;
use Opencontent\Organigramma\StrutturaActions;
$apiClient = new ApiClient(
$siteUrl,
$username,
$password,
$gmapkey,
);
$client = new Client(
$remoteclientConfig
);
$logger = new Logger();
try {
$logger->info('Impongo filtro su struttura U551');
$client->setByStructure('U551');
$logger->info('Ottengo strutture');
$strutture = $client->getStrutture();
$logger->info('Importo strutture');
$strutturaActions = new StrutturaActions($apiClient);
foreach ($strutture as $struttura) {
$logger->info(' - ' . Struttura::fromData($struttura));
$strutturaActions->importa($struttura);
}
$logger->info('Ottengo persone');
$persone = $client->getElencoTelefonico();
$logger->info('Importo persone');
$personaActions = new PersonaActions($apiClient);
foreach ($persone as $persona) {
$logger->info(' - ' . Persona::fromData($persona));
$personaActions->importa($persona);
}
$logger->info('Importo ruoli');
$ruoloActions = new RuoloActions($apiClient);
foreach ($strutture as $struttura) {
$s = Struttura::fromData($struttura);
$ruolo = Ruolo::fromStruttura($s);
if ($ruolo) {
$logger->info( ' - ' . $ruolo);
}
$ruoloActions->importaDaStruttura($struttura);
}
foreach ($persone as $persona) {
$p = Persona::fromData($persona);
$ruoli = Ruolo::fromPersona($p);
foreach ($ruoli as $ruolo) {
$logger->info( ' - ' . $ruolo);
}
$ruoloActions->importaDaPersona($persona);
}
} catch (Throwable $exception) {
$logger->error($exception->getMessage());
$logger->error($exception->getTraceAsString());
}