# Elencare connessioni

API che permettono di ottenere un elenco filtrato di link con le relative connessioni.

Sono disponibili 2 API per questo tipo di lettura, le quali si differenziano per i **controlli autorizzativi** effettuati e per il campo sul quale viene applicata la ricerca full text.

## Ricerca dei gestori

<p class="callout info">[\[GET\] /api/v3/connections/manager](https://connection-read-dev.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API%20V3/findOwnManagerConnections)</p>

### 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`

### Query Parameters

#### Parametri obbligatori

- **page:** numero della pagina da recuperare. La prima pagina è 0
- **size:** numero di connessioni da recuperare per pagina

#### Parametri opzionali

- **active:** booleano; se true, verranno ritornate le sole connessioni attive. Si consiglia di combinare `active=true` con `deleted=false`
- **appId:** elenco separato da virgole di appId da ricercare
- **deleted:** booleano; se true, vengono ritornate le sole connessioni che sono state eliminate
- **featureCode:** elenco separato da virgole di featureCode da ricercare
- **fullText:** effettua una ricerca fullText sulla ragione sociale del gestore della connessione
- **managedIds:** elenco separato da virgole di itemId da ricercare come item gestito nella connessione. <span style="text-decoration: underline;">I controlli autorizzativi vengono effettuati su questo campo, ogni item per il quale l'utente attuale non ha i permessi necessari viene ignorato</span>
- **managerIds:** elenco separato da virgole di itemId da ricercare come item gestore nella connessione
- **status:** elenco separato da virgole di [Status](https://digital-docs.ts-paas.com/link/109#bkmrk-connectionstatus)
- **approvalTypes:** elenco separato da virgole di [CertificationStatus](https://digital-docs.ts-paas.com/link/109#bkmrk-certificationstatus)
- **unpaged:** booleano; se true, ignora i parametri *page* e *size* e ritorna tutti i risultati in un singolo JSON di risposta

<p class="callout warning">Effettuare una chiamata non paginata potrebbe ritornare una mole ingente di dati, si consiglia di evitarle a meno che non siano assolutamente necessarie</p>

### Risposte

L'operazione è avvenuta con successo se e solo se il codice HTTP della risposta è `200`. Ogni altro codice di risposta indica uno stato di errore.

#### HTTP 200

L'elenco di connessioni è stato recuperato con successo.

```JSON
{
  "content": [
    {
      "id": "string",
      "managerId": "string",
      "managedId": "string",
      "managerDescription": "string",
      "managedDescription": "string",
      "connections": [
        {
          "id": "string",
          "status": {
            "active": true,
            "activatedAt": "2020-09-11T10:01:15.512Z",
            "activatedBy": "string",
            "createdAt": "2020-09-11T10:01:15.512Z",
            "createdBy": "string",
            "modifiedAt": "2020-09-11T10:01:15.512Z",
            "modifiedBy": "string",
            "deleted": true,
            "deletedAt": "2020-09-11T10:01:15.512Z",
            "deletedBy": "string",
            "status": "string",
            "certificationStatus": "string"
          },
          "appId": "string",
          "featureCode": "string",
          "permission": "string",
          "approvalType": "string",
          "serviceId": "string"
        }
      ]
    }
  ],
  "totalElements": 0,
  "totalPages": 0,
  "number": 0,
  "numberOfElements": 0,
  "size": 0
}
```

- **content:** array di [Link](https://digital-docs.ts-paas.com/link/109#bkmrk-link), ognuno dei quali contiene le sole connessioni che rispettano i filtri specificati. Se un Link è presente nella risposta, contiene almeno una connessione che rispetta i filtri.
- **totalElements:** numero totale delle connessioni che rispettano i filtri specificati
- **totalPages:** numero totale di pagine disponibili data la *size* specificata
- **number:** numero di pagina attuale
- **numberOfElements:** numero di elementi ritornati nella pagina
- **size**: dimensione della pagina

<span style="color: #222222; font-size: 1.666em; font-weight: 400;">HTTP 400</span>

Uno o più parametri forniti nella richiesta sono errati, o mancano dei parametri obbligatori.

#### HTTP 401

Il token autorizzativo è scaduto, invalido o non è stato specificato.

#### HTTP 403

Il token autorizzativo fornito è valido, ma l'utente non ha i permessi necessari a creare una connessione per il gestore specificato.

#### HTTP 500

Il server ha riscontrato un errore inaspettato nella creazione della richiesta di connessione

#### HTTP 502

Il server ha riscontrato un errore inaspettato nel comunicare con un servizio dal quale dipende per poter completare il processo (ad esempio, il servizio di auth non risulta essere disponibile)

Tutte le risposte d'errore condividono il seguente formato per il body di risposta:

```JSON
{
  "code": "string",
  "message": "string",
  "status": "string",
  "subErrors": [
    {}
  ],
  "timestamp": "dd-MM-yyyy HH:mm:ss"
}
```

- **code:** corrisponde al codice d'errore HTTP ritornato (es: `500`)
- **message:** messaggio d'errore (es: `Errore interno del server`)
- **status:** descrizione a parole del codice d'errore HTTP (es: `Internal server error`)
- **subErrors:** eventuali errori innestati in quello ritornato
- **timestamp:** data ed ora di ritorno dell'errore

## Ricerca delle gestite

<p class="callout info">[\[GET\] /api/v3/connections/managed](https://connection-read-dev.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API%20V3/findOwnManagedConnections)</p>

### 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`

### Query Parameters

#### Parametri obbligatori

- **page:** numero della pagina da recuperare. La prima pagina è 0
- **size:** numero di connessioni da recuperare per pagina

#### Parametri opzionali

- **active:** booleano; se true, verranno ritornate le sole connessioni attive. Si consiglia di combinare `active=true` con `disabled=false`
- **appId:** elenco separato da virgole di appId da ricercare
- **deleted:** booleano; se true, vengono ritornate le sole connessioni che sono state eliminate
- **featureCode:** elenco separato da virgole di featureCode da ricercare
- **fullText:** effettua una ricerca fullText sulla ragione sociale del gestore della connessione
- **managedIds:** elenco separato da virgole di itemId da ricercare come item gestito nella connessione
- **managerIds:** elenco separato da virgole di itemId da ricercare come item gestore nella connessione. <span style="text-decoration: underline;">I controlli autorizzativi vengono effettuati su questo campo, ogni item per il quale l'utente attuale non ha i permessi necessari viene ignorato</span>
- **status:** elenco separato da virgole di [Status](https://digital-docs.ts-paas.com/link/109#bkmrk-connectionstatus)
- **approvalTypes:** elenco separato da virgole di [CertificationStatus](https://digital-docs.ts-paas.com/link/109#bkmrk-certificationstatus)
- **unpaged:** booleano; se true, ignora i parametri *page* e *size* e ritorna tutti i risultati in un singolo JSON di risposta

<p class="callout warning">Effettuare una chiamata non paginata potrebbe ritornare una mole ingente di dati, si consiglia di evitarle a meno che non siano assolutamente necessarie</p>

### Risposte

L'operazione è avvenuta con successo se e solo se il codice HTTP della risposta è `200`. Ogni altro codice di risposta indica uno stato di errore.

#### HTTP 200

L'elenco di connessioni è stato recuperato con successo.

```JSON
{
  "content": [
    {
      "id": "string",
      "managerId": "string",
      "managedId": "string",
      "managerDescription": "string",
      "managedDescription": "string",
      "connections": [
        {
          "id": "string",
          "status": {
            "active": true,
            "activatedAt": "2020-09-11T10:01:15.512Z",
            "activatedBy": "string",
            "createdAt": "2020-09-11T10:01:15.512Z",
            "createdBy": "string",
            "modifiedAt": "2020-09-11T10:01:15.512Z",
            "modifiedBy": "string",
            "deleted": true,
            "deletedAt": "2020-09-11T10:01:15.512Z",
            "deletedBy": "string",
            "status": "string",
            "certificationStatus": "string"
          },
          "appId": "string",
          "featureCode": "string",
          "permission": "string",
          "approvalType": "string",
          "serviceId": "string"
        }
      ]
    }
  ],
  "totalElements": 0,
  "totalPages": 0,
  "number": 0,
  "numberOfElements": 0,
  "size": 0
}
```

- **content:** array di [Link](https://digital-docs.ts-paas.com/link/109#bkmrk-link), ognuno dei quali contiene le sole connessioni che rispettano i filtri specificati. Se un Link è presente nella risposta, contiene almeno una connessione che rispetta i filtri.
- **totalElements:** numero totale delle connessioni che rispettano i filtri specificati
- **totalPages:** numero totale di pagine disponibili data la *size* specificata
- **number:** numero di pagina attuale
- **numberOfElements:** numero di elementi ritornati nella pagina
- **size**: dimensione della pagina

<span style="color: #222222; font-size: 1.666em; font-weight: 400;">HTTP 400</span>

Uno o più parametri forniti nella richiesta sono errati, o mancano dei parametri obbligatori.

#### HTTP 401

Il token autorizzativo è scaduto, invalido o non è stato specificato.

#### HTTP 403

Il token autorizzativo fornito è valido, ma l'utente non ha i permessi necessari a creare una connessione per il gestore specificato.

#### HTTP 500

Il server ha riscontrato un errore inaspettato nella creazione della richiesta di connessione

#### HTTP 502

Il server ha riscontrato un errore inaspettato nel comunicare con un servizio dal quale dipende per poter completare il processo (ad esempio, il servizio di auth non risulta essere disponibile)

Tutte le risposte d'errore condividono il seguente formato per il body di risposta:

```JSON
{
  "code": "string",
  "message": "string",
  "status": "string",
  "subErrors": [
    {}
  ],
  "timestamp": "dd-MM-yyyy HH:mm:ss"
}
```

- **code:** corrisponde al codice d'errore HTTP ritornato (es: `500`)
- **message:** messaggio d'errore (es: `Errore interno del server`)
- **status:** descrizione a parole del codice d'errore HTTP (es: `Internal server error`)
- **subErrors:** eventuali errori innestati in quello ritornato
- **timestamp:** data ed ora di ritorno dell'errore