# Lettura SPID di un RAO

Dato l'identificativo anagrafica di un RAO, un utente con permesso su di esso può recuperare tutte le sessioni SPID che gli son state attribuite tramite l'API:

<p class="callout info">[\[GET\] /api/v1/spid/rao/{raoId}](https://spid-read-dev.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/spid-controller/getAllByRao)</p>

Il ruolo minimo necessario per la lettura è `SPID:raoId:READ`

### Header

Gli header richiesti dalla chiamata sono gli [header standard di TSDigital](https://digital-docs.ts-paas.com/books/integrazione-e-utilizzo-api-tsdigital/page/linee-guida-generali-api-ts-digital "Linee guida Generali API TS-Digital").

Il `Content-Type` deve essere `application/json`

### Path parameter

- **<span style="text-decoration: underline;">raoId</span>**: identificativo anagrafico univoco del RAO

### Body

La richiesta non ha body.

### Risposte

#### Successo

In caso di successo, l'API risponde con il codice **HTTP 200** con il seguente body:

```JSON
{
  "totalPages": 0,
  "totalElements": 0,
  "size": 0,
  "content": [
    {
      "id": "string",
      "itemId": "string",
      "type": "INDIVIDUAL",
      "status": "PENDING",
      "requestedAt": "2022-04-14T15:01:15.176Z",
      "updatedAt": "2022-04-14T15:01:15.176Z",
      "user": {
        "id": "string",
        "name": "string",
        "surname": "string",
        "email": "string",
        "taxId": "string",
        "ncsId": "string"
      },
      "slotId": 0,
      "videoSlotId": 0,
      "sessionId": "string",
      "sessionLink": "string",
      "cie": true,
      "cns": true,
      "feq": true,
      "video": true,
      "rao": true,
      "sessionExpirationDate": "2022-04-14T15:01:15.176Z",
      "raoId": "string",
      "level": "SPID_LEVEL_1"
    }
  ],
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "pageable": {
    "page": 0,
    "size": 1,
    "sort": [
      "string"
    ]
  },
  "numberOfElements": 0,
  "first": true,
  "last": true,
  "empty": true
}
```

- **totalPages**: numero totale di pagine disponibili data la **size** e i filtri correnti
- **totalElements**: numero totale di richieste SPID disponibili con i filtri forniti
- **size**: dimensione della pagina ritornata. Coincide con il parametro **size** fornito in input
- **content**: richieste SPID presenti nella pagina corrente. Vedi [Lettura di un singolo SPID](https://digital-docs.ts-paas.com/books/spid/page/lettura-di-un-singolo-spid "Lettura di un singolo SPID") per dettagli.
- **number**: numero di pagina attuale. Corrisponde con il parametro **page** fornito in input
- **sort**: informazioni sul sorting attuale
- **pageable**: informazioni sulla paginazione attuale
- **numberOfElement**: elementi presenti nella pagina attuale
- **first/last/empty**: booleani che indicano se si tratta della prima/ultima pagina o se la pagina è vuota

#### Errore

In caso di errore, l'API risponde con un body JSON avente il seguente formato:

```JSON
{
  "code": "string",
  "timestamp": "2022-04-13T13:35:16.678Z",
  "message": "string",
  "subErrors": [
    {}
  ]
}
```

- **code**: rappresentazione sotto forma di stringa del codice d'errore HTTP. Coincide con l'errore HTTP ritornato
- **tiemstamp**: data e ora della risposta, espresso sotto forma di stringa
- **message**: messaggio che esprime l'errore

Gli errori possibili sono:

- **400**: la richiesta è malformata (parametri con formato errato, parametri invalidi o inconsistenti fra loro)
- **401**: non è stato fornito un token autorizzativo o il token autorizzativo fornito non è valido (es: è scaduto)
- **403**: il token fornito è valido, ma l'utente non è autorizzato a leggere gli SPID associati al RAO
- **500**: si è verificato un errore inaspettato