Interface RichiesteApi


public interface RichiesteApi
Governa il ciclo delle richieste, i contatti di disponibilità e gli accordi.

Ogni operazione riceve l'identità verificata dal server e controlla il ruolo e il legame dell'attore con la pratica. Il modulo verifica stato e permessi prima di scrivere. Una transizione aggiorna atomicamente lo stato e i dati a cui è legata, anche con comandi concorrenti. I dinieghi e i dati non validi lasciano invariata la pratica.

See Also:
  • Method Details

    • invia

      Registra una richiesta della OPT autenticata. Il modulo attribuisce ID, data, titolare e stato iniziale RichiesteApi.StatoRichiesta.CREATA. Un ritento dello stesso invio della stessa OPT con uguale riferimento e dati restituisce la richiesta già registrata.
      Parameters:
      attore - identità verificata della OPT richiedente
      dati - misura, persona o nucleo, comune ed eventuale descrizione
      riferimentoInvio - identificativo del tentativo logico, oppure null se il chiamante non richiede il riconoscimento dei ritenti
      Returns:
      richiesta presente negli elenchi della OPT e del Banco
      Throws:
      SecurityException - se l'attore non è una OPT autorizzata
      IllegalArgumentException - se i dati sono incompleti, la misura non è richiedibile o il comune è sconosciuto
      IllegalStateException - se il riferimento di invio della OPT è già associato a dati diversi
    • elencoRichiesteOpt

      Elenca le richieste inviate dalla OPT autenticata.
      Parameters:
      attore - identità verificata della OPT titolare
      Returns:
      richieste proprie, eventualmente nessuna
      Throws:
      SecurityException - se l'attore non è una OPT autorizzata
    • codaBanco

      Elenca le richieste aperte in ordine cronologico di invio.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      Returns:
      coda con richieste Creata, Presa in carico e In programmazione
      Throws:
      SecurityException - se l'attore non è il Banco
    • archivioBanco

      Elenca per il Banco le richieste con un esito registrato.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      Returns:
      richieste Confermata, Rifiutata e Annullata
      Throws:
      SecurityException - se l'attore non è il Banco
    • elencoAssegnazioni

      Elenca le pratiche assegnate all'account autenticato.
      Parameters:
      attore - identità verificata della OPT o dell'operatore
      Returns:
      pratiche assegnate, incluse quelle con un esito registrato
      Throws:
      SecurityException - se l'attore non ha un ruolo da erogatore
    • consultaRichiesta

      RichiesteApi.RichiestaDettaglio consultaRichiesta(UtenzeApi.IdentitaAutenticata attore, UUID richiestaId)
      Consulta la pratica con i soli dati visibili al Banco, alla OPT titolare o all'erogatore assegnato. Una consultazione conserva lo stato corrente.
      Parameters:
      attore - identità verificata del richiedente
      richiestaId - identificativo della pratica
      Returns:
      dettaglio filtrato per il richiedente
      Throws:
      SecurityException - se l'attore non ha accesso alla pratica
      NoSuchElementException - se la pratica non esiste
    • prendiInCarico

      Registra la presa in carico esplicita del Banco per una richiesta Creata.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della richiesta in coda
      Returns:
      richiesta passata a Presa in carico
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
      IllegalStateException - se la richiesta non è Creata
    • cercaErogatoriOrdinati

      List<RichiesteApi.Candidato> cercaErogatoriOrdinati(UtenzeApi.IdentitaAutenticata attore, UUID richiestaId)
      Presenta le opzioni compatibili di una richiesta Presa in carico. Ordina prima per prossimità, poi a pari prossimità per precedenza degli operatori del Banco sulle OPT e infine per minor carico. Il Centro PICUS a distanza è l'alternativa alle opzioni locali quando la misura lo consente.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della pratica in lavorazione
      Returns:
      candidati ordinati, eventualmente nessuno
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
      IllegalStateException - se lo stato non consente la ricerca
    • interpellaErogatore

      RichiesteApi.ContattoDisponibilita interpellaErogatore(UtenzeApi.IdentitaAutenticata attore, UUID richiestaId, UUID erogatoreId, CatalogoApi.AmbitoErogazione ambito)
      Registra un contatto di disponibilità e fa avvisare il solo account interpellato. La richiesta resta Presa in carico e può avere al più un contatto in attesa di risposta.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della pratica
      erogatoreId - account dell'erogatore scelto
      ambito - opzione compatibile per cui si chiede disponibilità
      Returns:
      contatto creato in attesa, con identificativo proprio
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
      IllegalArgumentException - se l'opzione scelta non è compatibile
      IllegalStateException - se la richiesta non è Presa in carico o un contatto è già in attesa
    • elencoContatti

      Elenca per il Banco i contatti di una richiesta, comprese le risposte già acquisite.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della pratica
      Returns:
      storico dei contatti in ordine di invio, eventualmente vuoto
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
    • consultaContatto

      RichiesteApi.DettaglioContatto consultaContatto(UtenzeApi.IdentitaAutenticata attore, UUID contattoId)
      Fornisce al solo account interpellato i dati minimi per valutare la disponibilità.
      Parameters:
      attore - identità verificata della OPT o dell'operatore destinatario
      contattoId - identificativo del contatto ricevuto
      Returns:
      contatto e informazioni sintetiche sulla misura richiesta
      Throws:
      SecurityException - se il contatto è indirizzato a un altro account
      NoSuchElementException - se il contatto non esiste
    • rispondiDisponibilita

      RichiesteApi.ContattoDisponibilita rispondiDisponibilita(UtenzeApi.IdentitaAutenticata attore, UUID contattoId, boolean disponibile)
      Registra la risposta dell'account interpellato a quello specifico contatto. La risposta è visibile al Banco e la richiesta resta Presa in carico.
      Parameters:
      attore - identità verificata del destinatario del contatto
      contattoId - identificativo del contatto a cui si risponde
      disponibile - indica se l'erogatore accetta di proseguire il coordinamento
      Returns:
      contatto con la risposta registrata
      Throws:
      SecurityException - se il contatto è indirizzato a un altro account
      NoSuchElementException - se il contatto non esiste
      IllegalStateException - se il contatto non è in attesa o la richiesta non è Presa in carico
    • assegnaErogatore

      RichiesteApi.RichiestaSintesi assegnaErogatore(UtenzeApi.IdentitaAutenticata attore, UUID contattoId)
      Assegna la richiesta Presa in carico all'erogatore che ha risposto positivamente al contatto. Il passaggio a In programmazione registra l'assegnazione nello stesso esito.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      contattoId - identificativo del contatto con l'erogatore disponibile
      Returns:
      richiesta passata a In programmazione
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se il contatto non esiste
      IllegalStateException - se la richiesta non è Presa in carico, il contatto non attesta disponibilità o l'erogatore non è più abilitato
    • confermaAccordo

      Conferma l'accordo con l'erogatore già assegnato. La richiesta diventa Confermata e i dettagli completi e immutabili diventano consultabili nello stesso esito dalla OPT titolare e dall'erogatore assegnato, oltre che dal Banco.
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della pratica In programmazione
      accordo - dettagli concordati per la modalità prescelta
      Returns:
      dettaglio della richiesta confermata
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
      IllegalArgumentException - se mancano dettagli o la modalità è incompatibile
      IllegalStateException - se la richiesta non è In programmazione con un erogatore assegnato
    • rifiutaRichiesta

      RichiesteApi.RichiestaSintesi rifiutaRichiesta(UtenzeApi.IdentitaAutenticata attore, UUID richiestaId)
      Registra il rifiuto definitivo deciso dal Banco quando mancano soluzioni praticabili. La OPT titolare vede l'esito Rifiutata con il messaggio «Nessun erogatore disponibile».
      Parameters:
      attore - identità verificata del Banco di coordinamento
      richiestaId - identificativo della pratica
      Returns:
      richiesta passata a Rifiutata
      Throws:
      SecurityException - se l'attore non è il Banco
      NoSuchElementException - se la pratica non esiste
      IllegalStateException - se la richiesta non è Presa in carico o In programmazione
    • annullaRichiesta

      RichiesteApi.RichiestaSintesi annullaRichiesta(UtenzeApi.IdentitaAutenticata attore, UUID richiestaId, String motivo)
      Annulla la richiesta in qualsiasi stato per il Banco, la OPT titolare o l'erogatore assegnato. Conserva motivo e dettagli, chiude la ricerca e fa avvisare i soggetti coinvolti. Una ripetizione autorizzata su una richiesta già Annullata restituisce l'esito esistente.
      Parameters:
      attore - identità verificata dell'account coinvolto
      richiestaId - identificativo della pratica
      motivo - motivo dell'annullamento, facoltativo solo partendo da Creata
      Returns:
      richiesta in stato Annullata
      Throws:
      SecurityException - se l'attore non è autorizzato sulla pratica
      NoSuchElementException - se la pratica non esiste
      IllegalArgumentException - se manca il motivo quando richiesto