opencity-labs / cid-pat-integrations
Strumenti per le integrazioni Progetto CID PAT
1.4.4
2025-06-23 18:05 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());
}
UfficioStampa
I comunicati stampa prodotti in https://www.ufficiostampa.provincia.tn.it/ vengono pubblicati sul sito
Esempio di utilizzo
use Opencontent\Provvedimenti\ApiClient;
use Opencontent\UfficioStampa\Pusher;
$apiClient = new ApiClient(
$siteUrl,
$username,
$password,
$gmapkey,
);
$requestExample = [
"metadata" => [
"remoteId" => "8f1f8e2e66bfcb966bfa9324d6435035",
"stateIdentifiers" => [
"privacy.public",
]
],
"data" => [
"ita-IT" => [
"title" => "Esempio comunicato",
"abstract" => "Esempio abstract",
"content_type" => [
"Comunicato stampa",
],
"id_comunicato" => "1573-v1",
"author" => [
[
"remoteId" => "structureU226",
],
],
"image" => [
[
"remoteId" => "b31c5ce0a07b416e5ac197b19e941dc7",
],
],
"published" => "2025-06-08T17:40:59+02:00",
"topics" => [
[
"remoteId" => "9c6bb9fd24be27d9de27693ed21eed45",
],
[
"remoteId" => "766fd8c1ac024d72975aeb95387605dc",
],
],
"body" => "<p>Testo del comunicato</p>",
"location" => "https://www.ufficiostampa.provincia.tn.it/Comunicati/...",
],
],
];
$parser = new Pusher($apiClient);
$parser->push(
$requestExample['metadata'],
$requestExample['data'],
);