opencity-labs/cid-pat-integrations

Strumenti per le integrazioni Progetto CID PAT

1.4.4 2025-06-23 18:05 UTC

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'],
);