Pagination – Récupérer tous les dossiers d'une démarche

Exemple de cas d'usage : votre démarche est aujourd'hui close et vous souhaitez récuperer les informations des dossiers pour faire de l'analyse de donnée.

Avez-vous pris connaissance de notre mechanisme de pagination ?

Pour paginer vos requetes, il faut ajouter les curseurs à votre requete GraphQL, Pour ce faire ajouter le PageInfoFragment et déclarez les variables de pagination sur la ressource paginée Ex :

query getDemarche(
    $demarcheNumber: Int!
    $order: Order
    $first: Int
    $after: String
    $includeDossiers: Boolean = true
  ) {
    demarche(number: $demarcheNumber) {
      dossiers(
        order: $order
        first: $first
        after: $after
      ) @include(if: $includeDossiers) {
        pageInfo {
          ...PageInfoFragment
        }
        nodes {
          ...DossierFragment
        }
        pageInfo {
          endCursor
          hasNextPage
        }
      }
    }
  }

  fragment DossierFragment on Dossier {
    id
  }

  fragment PageInfoFragment on PageInfo {
    hasPreviousPage
    hasNextPage
    endCursor
  }

Vous pouvez tester en executant le script suivant avec les variables d'environnement adaptées :

Pour faciliter la lecture du code, la query GraphQL est fournie en PJ

Ensuite, vous pouvez executer ce code ruby qui :

  1. cherche a retrouver le dernier curseur que vous avez utiliser

  2. si il est présent, le ré-utilise pour requeter la page suivante (sinon il repart a 0)

  3. requete la page

  4. sauve le curseur

Vous pouvez ainsi executer le script plusieurs fois pour parcourir toutes les pages de dossier de votre démarche

Mis à jour