Powered by AppSignal & Oban Pro

Notes utiles

scripts/debugging.livemd

Notes utiles

Comment lancer ce livebook

mix escript.install hex livebook
asdf reshim elixir
  • Lancer livebook en connection au projet, avec la commande suivante:
livebook server
  • Modifier les réglages pour ne pas utiliser le mode “standalone” mais se connecter à un noeud qui tourne à la place (instructions disponibles dans LiveBook)

Opérations liées à l’import

Lors de l’ajout d’un dataset en backoffice, on donne l’url “data gouv” du dataset. Le contrôleur reçoit cette url via l’action POST, puis convertit cette url en “id datagouv” comme suit:

url = "https://www.data.gouv.fr/datasets/gtfs-et-gtfs-rt-reseau-tao-2022-orleans-metropole"

datagouv_id = Datagouvfr.Client.Datasets.get_id_from_url(url)

À partir de cet id (voir code), une requête à l’API data gouv publique est réalisée:

base_url = Application.fetch_env!(:transport, :datagouvfr_site)
url = "#{base_url}/api/1/datasets/#{datagouv_id}/"

response = HTTPoison.get!(url, [], hackney: [follow_redirect: true])
json = Jason.decode!(response.body)

resource_urls =
  json["resources"]
  |> Enum.map(& &1["url"])

first_resource_url = resource_urls |> Enum.take(1)

resource_urls
# csv content is fetched

%{status_code: 200, body: body} = HTTPoison.get!(first_resource_url)

Opendatasoft.UrlExtractor.get_url_from_csv(body)