# Lister les transferts

GET /api/transfers

  Renvoie une liste des transferts remplissant les critères donnés en paramètre de requête.

  En-têtes de requête:

    - Authorization – Les identifiants de l’utilisateur

  Paramètres:

    - limit (int) – Le nombre maximum de résultats souhaités (défaut: 20)

    - offset (int) – Le numéro du premier résultat souhaité (défaut: 0)

    - sort (string) – Le paramètre selon lequel les transferts seront triés. Valeurs possibles : `start+`, `start-`, `id+`, `id-`, `status+`, `status-`. (défaut: start+)

    - remote (int) – Filtre uniquement les transferts avec le partenaire renseigné. Peut être renseigné plusieurs fois pour filtrer plusieurs partenaires.

    - account (int) – Filtre uniquement les transferts avec le compte renseigné. Peut être renseigné plusieurs fois pour filtrer plusieurs comptes.

    - rule (int) – Filtre uniquement les transferts avec la règle renseignée. Peut être renseigné plusieurs fois pour filtrer plusieurs règles.

    - status (string) – Filtre uniquement les transferts ayant le statut renseigné. Valeurs possibles : `PLANNED`, `RUNNING`, `PAUSED`, `INTERRUPTED` ou `ERROR`. Peut être renseigné plusieurs fois pour filtrer plusieurs status.

    - start (date) – Filtre uniquement les transferts dont la date est ultérieure à celle renseignée.

    - followID (string) – Filtre uniquement les transferts ayant l’ID de flux renseigné.

  Status Codes:

    - 200 OK – La liste a été renvoyée avec succès

    - 400 Bad Request – Un ou plusieurs des paramètres de requêtes sont invalides

    - 401 Unauthorized – Authentification d’utilisateur invalide

  Objet JSON de réponse:

    - transfers (array) – La liste des transferts demandés

  Tableau d’objets JSON de réponse:

    - id (number) – L’identifiant local du transfert

    - remoteID (string) – L’identifiant global du transfert

    - isServer (bool) – Indique si Gateway est agit en tant que serveur (`true`) ou en tant que client (`false`)

    - isSend (bool) – Indique si le transfert est un envoi (`true`) ou une réception (`false`)

    - rule (string) – Le nom de la règle de transfert

    - requester (string) – Le nom du compte ayant demandé le transfert

    - requested (string) – Le nom du serveur/partenaire auquel le transfert a été demandé

    - protocol (string) – Le protocole utilisé pour effectuer le transfert

    - srcFilename (string) – Le nom du fichier source.

    - destFilename (string) – Le nom du fichier destination.

    - localFilepath (string) – Le chemin du fichier sur le disque local

    - remoteFilepath (string) – Le chemin du fichier sur le partenaire distant

    - filesize (number) – La taille du fichier (-1 si inconnue)

    - start (date) – La date de début du transfert

    - stop (date) – La date de fin du transfert (si le transfert est terminé)

    - status (string) – Le statut actuel du transfert (valeurs possibles: `PLANNED`, `RUNNING`, `PAUSED`, `INTERRUPTED`, `ERROR`, `DONE` ou `CANCELLED`)

    - step (string) – L’étape actuelle du transfert (valeurs possibles: `StepNone`, `StepSetup`, `StepPreTasks`, `StepData`, `StepPostTasks`, `StepErrorTasks` ou `StepFinalization`)

    - progress (number) – La progression (en octets) du transfert de données

    - taskNumber (number) – Le numéro du traitement en cours d’exécution

    - errorCode (string) – Le code d’erreur du transfert (si une erreur s’est produite)

    - errorMsg (string) – Le message d’erreur du transfert (si une erreur s’est produite)

    - transferInfo (object) – Des informations de transfert personnalisées sous la forme d’une liste de pairs clé:valeur, c’est-à-dire sous forme d’un objet JSON.

    - remainingTries (number) – Le nombre de tentatives automatiques restantes. Ce nombre n’inclue donc pas la tentative originale du transfert.

    - nextAttempt (string) – La date de la prochaine tentative du transfert. À noter que ce champ est nul pendant que le transfert est en cours ou si le transfers n’a plus de tentatives restantes.

    - nextRetryDelay (number) – Le délai (en secondes) entre la dernière tentative du transfert et la prochaine.

    - retryIncrementFactor (number) – Le facteur par lequel le délai ci-dessus sera multiplié à chaque nouvelle tentative.

  Exemple de requête

      GET https://my_waarp_gateway.net/api/transfers?limit=10&order=desc&rule=1&start=2019-01-01T01:00:00+02:00 HTTP/1.1
      Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

  Exemple de réponse

      HTTP/1.1 200 OK
      Content-Type: application/json
      Content-Length: 249

      {
        "transfers": [{
          "id": 1,
          "isServer": false,
          "rule": "règle_1",
          "requester": "toto",
          "requested": "waarp_sftp",
          "protocol": "sftp",
          "localFilepath": "/chemin/local/fichier1",
          "remoteFilepath": "/chemin/distant/fichier1",
          "start": "2019-01-01T02:00:00+02:00",
          "status": "RUNNING",
          "step": "DATA",
          "progress": 123456,
          "transferInfo": { "key1": "val1", "key2": 2, "key3": true },
          "remainingTries": 1,
          "nextRetryDelay": 60,
          "retryIncrementFactor": 2
        },{
          "id": 2,
          "isServer": true,
          "rule": "règle_2",
          "requester": "tata",
          "requested": "sftp_serveur",
          "protocol": "r66",
          "localFilepath": "/chemin/local/fichier2",
          "remoteFilepath": "/chemin/distant/fichier2",
          "start": "2019-01-01T03:00:00+02:00",
          "status": "PLANNED",
          "remainingTries": 3,
          "nextAttempt": "2019-01-01T03:00:00+02:00",
          "nextRetryDelay": 600,
          "retryIncrementFactor": 1.5
        }]
      }