opencity-labs/cid-pat-integrations

Strumenti per le integrazioni Progetto CID PAT

1.2.0 2025-04-16 19:31 UTC

This package is not auto-updated.

Last update: 2025-04-16 17:31:54 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());
}