SYMBOL INDEX (6615 symbols across 1066 files) FILE: apps/shared/lib/application.ex class Shared.Application (line 1) | defmodule Shared.Application method start (line 6) | def start(_type, _args) do method cache_name (line 23) | def cache_name, do: Shared.Cachex FILE: apps/shared/lib/appsignal_filter.ex class TransportWeb.Plugs.AppSignalFilter (line 1) | defmodule TransportWeb.Plugs.AppSignalFilter method init (line 16) | def init(options), do: options method call (line 18) | def call(%Plug.Conn{} = conn, _opts) do method must_ignore? (line 29) | defp must_ignore?(%Plug.Conn{} = conn) do FILE: apps/shared/lib/cldr.ex class Transport.Cldr (line 1) | defmodule Transport.Cldr FILE: apps/shared/lib/conditional_json_encoder.ex class Transport.Shared.ConditionalJSONEncoder (line 1) | defmodule Transport.Shared.ConditionalJSONEncoder method encode_to_iodata! (line 35) | def encode_to_iodata!(data) do FILE: apps/shared/lib/data_visualization.ex class Transport.DataVisualization (line 1) | defmodule Transport.DataVisualization method impl (line 8) | defp impl, do: Application.get_env(:transport, :data_visualization) method has_features (line 9) | def has_features(validations), do: impl().has_features(validations) method validation_data_vis (line 10) | def validation_data_vis(validations), do: impl().validation_data_vis(v... class Transport.DataVisualization.Impl (line 13) | defmodule Transport.DataVisualization.Impl method has_features (line 21) | def has_features(nil), do: false method has_features (line 22) | def has_features(data_visualization), do: not Enum.empty?(data_visua... method validation_data_vis (line 26) | def validation_data_vis(nil), do: nil method validation_data_vis (line 28) | def validation_data_vis(validations) do method data_vis_per_issue_type (line 34) | defp data_vis_per_issue_type(issues) do FILE: apps/shared/lib/date_time_display.ex class Shared.DateTimeDisplay (line 1) | defmodule Shared.DateTimeDisplay method format_date (line 25) | def format_date(%DateTime{} = datetime, locale), do: format_date(DateT... method format_date (line 26) | def format_date(%Date{} = date, "fr"), do: Calendar.strftime(date, "%d... method format_date (line 27) | def format_date(%Date{} = date, "en"), do: Calendar.strftime(date, "%Y... method format_date (line 28) | def format_date(%Date{} = date, _), do: format_date(date, "fr") method format_date (line 34) | def format_date(nil, _), do: "" method format_date (line 36) | def format_date(date, locale, iso_extended: true) do method format_datetime_to_date (line 48) | def format_datetime_to_date(%DateTime{} = dt, locale) do method format_datetime_to_date (line 52) | def format_datetime_to_date(nil, _), do: "" method format_datetime_to_paris (line 87) | def format_datetime_to_paris(dt, locale), do: format_datetime_to_paris... method format_datetime_to_paris (line 89) | def format_datetime_to_paris(%DateTime{} = dt, locale, options) do method format_datetime_to_paris (line 95) | def format_datetime_to_paris(%NaiveDateTime{} = ndt, locale, options) do method format_datetime_to_paris (line 107) | def format_datetime_to_paris(nil, _, _), do: "" method format_time_to_paris (line 142) | def format_time_to_paris(dt, locale) do method format_time_to_paris (line 146) | def format_time_to_paris(%DateTime{} = dt, locale, options) do method format_time_to_paris (line 152) | def format_time_to_paris(%NaiveDateTime{} = ndt, locale, options) do method format_time_to_paris (line 164) | def format_time_to_paris(nil, _, _), do: "" method format_duration (line 218) | def format_duration(duration_in_seconds, locale) do method relative_datetime_in_days (line 237) | def relative_datetime_in_days(days, locale) do method relative_datetime_in_seconds (line 241) | def relative_datetime_in_seconds(seconds, locale) do method convert_to_paris_time (line 246) | def convert_to_paris_time(%DateTime{} = dt) do method convert_to_paris_time (line 250) | def convert_to_paris_time(%NaiveDateTime{} = ndt) do method get_localized_datetime_format (line 254) | defp get_localized_datetime_format("en" = locale, options) do method get_localized_datetime_format (line 258) | defp get_localized_datetime_format(locale, options) do method get_localized_time_format (line 262) | defp get_localized_time_format("en", options) do method get_localized_time_format (line 270) | defp get_localized_time_format(_locale, options) do FILE: apps/shared/lib/hasher.ex class Hasher (line 20) | defmodule Hasher class Hasher.Wrapper (line 1) | defmodule Hasher.Wrapper method impl (line 7) | def impl, do: Application.get_env(:transport, :hasher_impl) class Hasher.Dummy (line 10) | defmodule Hasher.Dummy method get_content_hash (line 17) | def get_content_hash(_url), do: "xxx" method get_content_hash (line 29) | def get_content_hash(url) do method get_content_hash_http (line 41) | def get_content_hash_http(url) do method compute_sha256 (line 57) | def compute_sha256(url) do method find_etag (line 79) | defp find_etag({"Etag", v}), do: v method find_etag (line 80) | defp find_etag(_), do: nil method compute_checksum (line 82) | def compute_checksum(stream, algorithm) do method get_file_hash (line 90) | def get_file_hash(file_path) do FILE: apps/shared/lib/helpers.ex class Helpers (line 1) | defmodule Helpers method filename_from_url (line 28) | def filename_from_url(_), do: nil method format_number_maybe_nil (line 62) | def format_number_maybe_nil(nil, options), do: options |> Keyword.fetc... method format_number_maybe_nil (line 63) | def format_number_maybe_nil(n, options), do: format_number(n, options ... method last_updated (line 66) | def last_updated(resources) do FILE: apps/shared/lib/http_stream_v2.ex class HTTPStreamV2 (line 1) | defmodule HTTPStreamV2 method fetch_status_and_hash (line 29) | def fetch_status_and_hash(url, max_redirect \\ @default_allowed_redire... method fetch_status_and_hash (line 36) | def fetch_status_and_hash(url, max_redirect, redirect_count) do method handle_stream_response (line 51) | defp handle_stream_response({:status, status}, acc) do method handle_stream_response (line 58) | defp handle_stream_response({:headers, headers}, acc) do method handle_stream_response (line 73) | defp handle_stream_response({:data, data}, acc) do method compute_final_hash (line 78) | defp compute_final_hash(result) do method fetch_status (line 90) | def fetch_status(url) do method location_header (line 99) | defp location_header(headers) do method handle_stream_status (line 103) | defp handle_stream_status({:status, status}, acc) do method handle_stream_status (line 114) | defp handle_stream_status({:headers, headers}, acc) do method fetch_status_follow_redirect (line 126) | def fetch_status_follow_redirect( method fetch_status_follow_redirect (line 137) | def fetch_status_follow_redirect(url, max_redirect, redirect_count) do FILE: apps/shared/lib/proxy.ex class Shared.Proxy (line 1) | defmodule Shared.Proxy method forwarded_headers_allowlist (line 13) | def forwarded_headers_allowlist do FILE: apps/shared/lib/req_custom_cache.ex class Transport.Shared.ReqCustomCache (line 1) | defmodule Transport.Shared.ReqCustomCache method attach (line 12) | def attach(%Req.Request{} = request, options \\ []) do method request_local_cache_step (line 20) | def request_local_cache_step(request) do method response_local_cache_step (line 33) | def response_local_cache_step({request, response}) do method cache_path (line 47) | def cache_path(cache_dir, %{method: :get} = request) do method cache_path (line 62) | def cache_path(request) do method load_cache (line 67) | def load_cache(path) do method write_cache (line 72) | def write_cache(path, response) do FILE: apps/shared/lib/resource_schema.ex class Transport.Shared.ResourceSchema (line 1) | defmodule Transport.Shared.ResourceSchema method guess_name (line 29) | def guess_name(%{"schema" => %{"name" => schema}}, _dataset_type) do method guess_name (line 33) | def guess_name(%{"url" => url, "format" => format}, "road-data") do method guess_name (line 39) | def guess_name(_, _), do: nil method guess_version (line 53) | def guess_version(%{"schema" => %{"version" => version}}) do method guess_version (line 57) | def guess_version(_), do: nil FILE: apps/shared/lib/s3.ex class Transport.S3 (line 1) | defmodule Transport.S3 method bucket_name (line 9) | def bucket_name(feature) do method permanent_url (line 15) | def permanent_url(feature, path \\ "") do method bucket_names (line 26) | def bucket_names do method delete_object! (line 32) | def delete_object!(feature, path) do method stream_to_s3! (line 39) | def stream_to_s3!(feature, local_path, upload_path, options \\ []) do method download_file (line 50) | def download_file(feature, remote_path, local_path) do method get_object! (line 68) | def get_object!(feature, remote_path) do method download_file! (line 78) | def download_file!(feature, remote_path, dest) do method head_object! (line 86) | def head_object!(feature, remote_path) do method remote_copy_file! (line 94) | def remote_copy_file!(feature, remote_path_src, remote_path_dest) do FILE: apps/shared/lib/sentry_exception_filter.ex class Transport.Shared.SentryExceptionFilter (line 1) | defmodule Transport.Shared.SentryExceptionFilter method exclude_exception? (line 30) | def exclude_exception?(%FunctionClauseError{function: :do_match, arity... method exclude_exception? (line 32) | def exclude_exception?(_exception, _source), do: false FILE: apps/shared/lib/syntax_colors.ex class Transport.Inspect (line 1) | defmodule Transport.Inspect method syntax_colors (line 26) | def syntax_colors, do: @syntax_colors method pretty_inspect (line 31) | def pretty_inspect(data) do FILE: apps/shared/lib/time_wrapper.ex class TimeWrapper (line 1) | defmodule TimeWrapper method parse! (line 12) | def parse!(date_as_string, "{ISO:Extended}" = param) do method parse! (line 16) | def parse!(date_as_string, "{YYYY}{0M}{0D}" = param) do method parse! (line 22) | def parse!(datetime_as_string, "{WDshort}, {D} {Mshort} {YYYY} {h24}:{... method diff (line 26) | def diff(first, second, :hours = param) do method now (line 30) | def now do method shift (line 34) | def shift(dt, months: months) do method convert (line 38) | def convert(dt, "UTC") do method convert_to_paris_time (line 42) | def convert_to_paris_time(dt) do FILE: apps/shared/lib/validation/gbfs_validator.ex class Shared.Validation.GBFSValidator (line 1) | defmodule Shared.Validation.GBFSValidator class Summary (line 6) | defmodule Summary class Wrapper (line 29) | defmodule Wrapper method impl (line 33) | defp impl, do: Application.get_env(:transport, :gbfs_validator_impl) method validate (line 36) | def validate(url), do: impl().validate(url) class HTTPValidatorClient (line 39) | defmodule HTTPValidatorClient method validate (line 48) | def validate(url) do method validator_url (line 69) | defp validator_url, do: Application.fetch_env!(:transport, :gbfs_valid... method call_api (line 71) | defp call_api(url) do FILE: apps/shared/lib/validation/gtfs_validator.ex class Shared.Validation.GtfsValidator (line 9) | defmodule Shared.Validation.GtfsValidator class Shared.Validation.GtfsValidator.Wrapper (line 1) | defmodule Shared.Validation.GtfsValidator.Wrapper method impl (line 6) | def impl, do: Application.get_env(:transport, :gtfs_validator, Share... method validate (line 33) | def validate(gtfs), method validate_from_url (line 41) | def validate_from_url(gtfs_url), method build_validate_url (line 48) | defp build_validate_url, do: gtfs_validator_base_url() <> "/validate" method remote_gtfs_validation_query (line 50) | def remote_gtfs_validation_query(gtfs_url) do method gtfs_validator_base_url (line 55) | defp gtfs_validator_base_url do method handle_validation_response (line 62) | defp handle_validation_response({:ok, %{status_code: 200, body: body}}... method handle_validation_response (line 73) | defp handle_validation_response({_, %{body: body}}) do method handle_validation_response (line 78) | defp handle_validation_response({:error, _}) do method http_client (line 82) | defp http_client, do: Application.fetch_env!(:transport, :httpoison_impl) method send_get_request (line 84) | defp send_get_request(url), do: http_client().get(url, [], recv_timeou... method send_post_request (line 86) | defp send_post_request(url, body), do: http_client().post(url, body, [... FILE: apps/shared/lib/validation/validator.ex class Shared.Validation.Validator (line 1) | defmodule Shared.Validation.Validator FILE: apps/shared/lib/wrapper/wrapper_httpoison.ex class Transport.Shared.Wrapper.HTTPoison (line 1) | defmodule Transport.Shared.Wrapper.HTTPoison method impl (line 9) | def impl, do: Application.get_env(:transport, :httpoison_impl) FILE: apps/shared/lib/wrapper/wrapper_req.ex class Transport.Req (line 31) | defmodule Transport.Req class Transport.Req.Behaviour (line 1) | defmodule Transport.Req.Behaviour method impl (line 37) | def impl, do: Application.get_env(:transport, :req_impl, __MODULE__) class Transport.HTTPClient (line 46) | defmodule Transport.HTTPClient method get! (line 52) | def get!(url, options) do method get (line 58) | def get(url, options) do method setup_cache (line 64) | defp setup_cache(options) do FILE: apps/shared/lib/wrapper_ex_aws.ex class Transport.Wrapper.ExAWS (line 1) | defmodule Transport.Wrapper.ExAWS method impl (line 8) | def impl, do: Application.get_env(:transport, :ex_aws_impl) FILE: apps/shared/mix.exs class Shared.MixProject (line 1) | defmodule Shared.MixProject method project (line 4) | def project do method elixirc_paths (line 27) | defp elixirc_paths(:test), do: ["lib", "test/support"] method elixirc_paths (line 28) | defp elixirc_paths(_), do: ["lib"] method application (line 30) | def application do method deps (line 37) | defp deps do FILE: apps/shared/test/data_visualization_test.exs class Transport.DataVisualizationTest (line 1) | defmodule Transport.DataVisualizationTest FILE: apps/shared/test/date_time_display_test.exs class Shared.DateTimeDisplayTest (line 1) | defmodule Shared.DateTimeDisplayTest FILE: apps/shared/test/hasher_test.exs class HasherTest (line 1) | defmodule HasherTest method to_atom_keys (line 45) | defp to_atom_keys(map) do FILE: apps/shared/test/helpers/helpers_test.exs class Helpers.HelpersTest (line 1) | defmodule Helpers.HelpersTest FILE: apps/shared/test/http_stream_v2_test.exs class HTTPStreamV2.Test (line 1) | defmodule HTTPStreamV2.Test FILE: apps/shared/test/resource_schema_test.exs class Transport.Shared.ResourceSchemaTest (line 1) | defmodule Transport.Shared.ResourceSchemaTest FILE: apps/shared/test/s3_test.exs class Transport.S3Test (line 1) | defmodule Transport.S3Test FILE: apps/shared/test/support/cache_case.ex class Shared.CacheCase (line 1) | defmodule Shared.CacheCase FILE: apps/shared/test/support/s3_test_utils.ex class Transport.Test.S3TestUtils (line 1) | defmodule Transport.Test.S3TestUtils method s3_mock_list_buckets (line 11) | def s3_mock_list_buckets(bucket_names \\ []) do method s3_mock_stream_file (line 22) | def s3_mock_stream_file(start_path: expected_start_path, bucket: expec... method s3_mock_stream_file (line 35) | def s3_mock_stream_file( method s3_mock_stream_file (line 54) | def s3_mock_stream_file( method s3_mocks_delete_object (line 73) | def s3_mocks_delete_object(expected_bucket, expected_path) do method s3_mocks_remote_copy_file (line 85) | def s3_mocks_remote_copy_file(expected_bucket, expected_src_path, expe... FILE: apps/shared/test/support/test_utils.ex class Transport.Test.TestUtils (line 1) | defmodule Transport.Test.TestUtils method wait_until (line 10) | def wait_until(fun, timeout_ms \\ 2_000, interval_ms \\ 10) do method do_wait_until (line 15) | defp do_wait_until(fun, deadline, interval_ms, timeout_ms) do method ensure_no_tmp_files! (line 28) | def ensure_no_tmp_files!(file_prefix) do method zip_metadata (line 37) | def zip_metadata do FILE: apps/shared/test/time_wrapper_test.exs class TimeWrapperTest (line 1) | defmodule TimeWrapperTest FILE: apps/shared/test/validation/gbfs_validator_test.exs class GBFSValidatorTest (line 1) | defmodule GBFSValidatorTest FILE: apps/shared/test/validation/gtfs_validator_test.exs class GtfsValidatorTest (line 1) | defmodule GtfsValidatorTest method assert_validation_report_is (line 43) | defp assert_validation_report_is({:ok, obtained_validation_report}, ex... method create_gtfs (line 46) | defp create_gtfs, do: File.read!("#{__DIR__}/gtfs.zip") method expect_validator_called_with_gtfs_and_return_report (line 48) | defp expect_validator_called_with_gtfs_and_return_report(_gtfs, expect... method expect_validator_called_with_gtfs_url_and_return_report (line 58) | defp expect_validator_called_with_gtfs_url_and_return_report(gtfs_url,... FILE: apps/transport/client/javascripts/app.js method mounted (line 8) | mounted() { method updated (line 11) | updated() { method mounted (line 31) | mounted() { FILE: apps/transport/client/javascripts/autocomplete.js method keydown (line 77) | keydown(event) { FILE: apps/transport/client/javascripts/dataset-map.js function initilizeMap (line 4) | function initilizeMap(id) { function createDatasetMap (line 12) | function createDatasetMap(divId, datasetDatagouvId) { FILE: apps/transport/client/javascripts/explore.js constant DEFAULT_LAT (line 24) | const DEFAULT_LAT = 48.8575 constant DEFAULT_LNG (line 25) | const DEFAULT_LNG = 2.3514 constant DEFAULT_ZOOM (line 26) | const DEFAULT_ZOOM = 6 function getMapParamsFromUrlPath (line 28) | function getMapParamsFromUrlPath() { function prepareGTFSRTLayer (line 61) | function prepareGTFSRTLayer(layerData) { function getTooltip (line 89) | function getTooltip({ object, layer }) { function getLayers (line 120) | function getLayers(layers) { function withQueryParams (line 124) | function withQueryParams(alter) { function setQueryFlag (line 132) | function setQueryFlag(key) { function setQueryParam (line 136) | function setQueryParam(key, value) { function unsetQueryFlag (line 140) | function unsetQueryFlag(key) { function startGTFSRT (line 156) | function startGTFSRT() { function stopGTFSRT (line 170) | function stopGTFSRT() { function startBNLC (line 189) | function startBNLC() { function startZFE (line 205) | function startZFE() { function startIRVE (line 221) | function startIRVE() { function startGBFS (line 237) | function startGBFS() { function updateBNLCLayer (line 259) | function updateBNLCLayer(geojson) { function updateZFELayer (line 263) | function updateZFELayer(geojson) { function updateIRVELayer (line 267) | function updateIRVELayer(geojson) { function updateGBFSStationsLayer (line 271) | function updateGBFSStationsLayer(geojson) { function trackEvent (line 276) | function trackEvent(layer) { function createPointsLayer (line 284) | function createPointsLayer(geojson, id) { function updateUrl (line 310) | function updateUrl() { FILE: apps/transport/client/javascripts/gtfs.js constant DEFAULT_LAT (line 9) | const DEFAULT_LAT = 48.8575 constant DEFAULT_LNG (line 10) | const DEFAULT_LNG = 2.3514 constant DEFAULT_ZOOM (line 11) | const DEFAULT_ZOOM = 6 function getMapParamsFromUrlPath (line 13) | function getMapParamsFromUrlPath() { function showPopup (line 40) | function showPopup(info) { function updateUrl (line 187) | function updateUrl() { FILE: apps/transport/client/javascripts/map-config.js constant IGN (line 11) | const IGN = { FILE: apps/transport/client/javascripts/map-geojson.js function initializeMap (line 4) | function initializeMap(id) { function TransitLinesStyle (line 13) | function TransitLinesStyle(feature) { function createStopsMarkers (line 21) | function createStopsMarkers(_geoJsonPoint, latlng) { function setZoomEvents (line 25) | function setZoomEvents(map, fg) { function GeojsonMap (line 35) | function GeojsonMap(fillMapFunction, mapDivId, infoDivId, geojsonUrl, fi... function TransitMap (line 58) | function TransitMap(mapDivId, geojsonUrl) { function GenericLinesStyle (line 106) | function GenericLinesStyle(_feature) { function createPointsMarkers (line 110) | function createPointsMarkers(_geoJsonPoint, latlng) { function formatPopupContent (line 114) | function formatPopupContent(content) { function GenericMap (line 118) | function GenericMap(mapDivId, geojsonUrl) { function TransitGeojsonMap (line 151) | function TransitGeojsonMap(mapDivId, infoDivId, geojsonUrl, filesize = 0... function GenericGeojsonMap (line 155) | function GenericGeojsonMap(mapDivId, infoDivId, geojsonUrl, filesize = 0... FILE: apps/transport/client/javascripts/map.js function getAomsFG (line 52) | function getAomsFG(featureFunction, style, filter = null) { function displayVehiclesSharing (line 72) | function displayVehiclesSharing(map, featureFunction) { function displayQuality (line 93) | function displayQuality(featureFunction, style) { function searchURL (line 111) | function searchURL(insee) { function addStaticPTMapAOMS (line 118) | function addStaticPTMapAOMS(id, view) { function addStaticPTUpToDate (line 166) | function addStaticPTUpToDate(id, view) { function addStaticPTQuality (line 228) | function addStaticPTQuality(id, view) { function addRealTimePtFormatMap (line 309) | function addRealTimePtFormatMap(id, view) { function addPtFormatMap (line 459) | function addPtFormatMap(id, view) { function addVehiclesSharingMap (line 528) | function addVehiclesSharingMap(id, view) { FILE: apps/transport/client/javascripts/resource-viz.js function getLabel (line 9) | function getLabel(obj, labelsList) { function initilizeMap (line 18) | function initilizeMap(id) { function coordinatesAreCorrect (line 26) | function coordinatesAreCorrect(lat, lon) { function displayData (line 30) | function displayData(data, fg, { latField, lonField }) { function setZoomEvents (line 50) | function setZoomEvents(map, fg) { function createCSVmap (line 62) | function createCSVmap(id, resourceUrl) { function setGBFSStationStyle (line 81) | function setGBFSStationStyle(feature, layer, field) { function setGBFSFreeFloatingStyle (line 107) | function setGBFSFreeFloatingStyle(feature, layer) { function setGBFSGeofencingStyle (line 135) | function setGBFSGeofencingStyle(feature, layer, globalRules) { function fillStations (line 171) | function fillStations(stationsGeojson, bikesAvailable, docksAvailable) { function clearFeatureGroups (line 187) | function clearFeatureGroups(featureGroups) { function fillFreeFloating (line 193) | function fillFreeFloating(geojson, freeFloating) { function fillGeofencingZones (line 202) | function fillGeofencingZones(geojson, geoFencingZones) { function fillGBFSMap (line 215) | function fillGBFSMap(resourceUrl, fg, map, lang, firstCall = false) { function setGBFSLayersControl (line 255) | function setGBFSLayersControl(fg, map, lang) { function addCountdownDiv (line 277) | function addCountdownDiv(id, refreshInterval) { function createGBFSmap (line 288) | function createGBFSmap(id, resourceUrl, lang) { function createGeojsonMap (line 313) | function createGeojsonMap(id, resourceUrl) { function removeViz (line 324) | function removeViz(consoleMsg) { function createMap (line 336) | function createMap(id, resourceUrl, resourceFormat, lang = 'fr') { FILE: apps/transport/client/javascripts/validation-map.js function initilizeMap (line 4) | function initilizeMap(id) { function getColor (line 12) | function getColor(severity) { function createValidationMap (line 21) | function createValidationMap(divId, dataVis) { FILE: apps/transport/lib/S3/aggregates_uploader.ex class Transport.S3.AggregatesUploader (line 1) | defmodule Transport.S3.AggregatesUploader method upload_aggregate! (line 19) | def upload_aggregate!(file, remote_path, remote_latest_path) do method with_tmp_file (line 29) | def with_tmp_file(cb) do method timestamp (line 39) | def timestamp, do: DateTime.utc_now() |> Calendar.strftime("%Y%m%d.%H%... method mk_tmp_file (line 41) | defp mk_tmp_file do method sha256! (line 49) | defp sha256!(file, checksum_file) do method upload_files! (line 64) | defp upload_files!(file, checksum_file, remote_path) do method update_latest_files! (line 73) | defp update_latest_files!({remote_path, remote_checksum_path}, remote_... method checksum_filename (line 82) | defp checksum_filename(base_filename) do method stream_upload! (line 86) | defp stream_upload!(file, filename) do method copy! (line 90) | defp copy!(s3_path, filename) do FILE: apps/transport/lib/S3/unzip.ex class Transport.Unzip.S3 (line 10) | defmodule Transport.Unzip.S3 class Transport.Unzip.S3.Behaviour (line 1) | defmodule Transport.Unzip.S3.Behaviour method impl (line 11) | def impl, do: Application.get_env(:transport, :unzip_s3_impl, __MODULE__) method new (line 23) | def new(path, bucket, s3_config) do method aws_s3_config (line 27) | defp aws_s3_config, method get_file_stream (line 34) | def get_file_stream(file_name, zip_name, bucket_name) do method get_unzip (line 39) | def get_unzip(zip_name, bucket_name) do FILE: apps/transport/lib/converters/converter.ex class Transport.Converters.Converter (line 1) | defmodule Transport.Converters.Converter FILE: apps/transport/lib/data_frame/requiredness_processing.ex class Transport.DataFrame.RequirednessProcessing (line 1) | defmodule Transport.DataFrame.RequirednessProcessing method wrap_with_requiredness (line 12) | def wrap_with_requiredness(input_values_series, validation_series, req... method wrap_with_requiredness (line 19) | def wrap_with_requiredness(input_values_series, validation_series, req... FILE: apps/transport/lib/data_frame/validation_primitives.ex class Transport.DataFrame.Validation.Primitives (line 1) | defmodule Transport.DataFrame.Validation.Primitives method has_value (line 42) | def has_value(series) do method simple_email_pattern (line 71) | def simple_email_pattern, do: @simple_email_pattern method email? (line 86) | def email?(series) do method boolean_value? (line 120) | def boolean_value?(series) do method integer_value? (line 138) | def integer_value?(series) do method numeric? (line 160) | def numeric?(series) do method date? (line 207) | def date?(series, "%Y-%m-%d" = _format) do method geopoint? (line 235) | def geopoint?(series, "array" = _format) do FILE: apps/transport/lib/data_screens/data_screens.ex class Transport.Screens (line 1) | defmodule Transport.Screens method resources (line 7) | def resources do method resources_with_duplicate_datagouv_id (line 12) | def resources_with_duplicate_datagouv_id do method resources_with_duplicate_datagouv_id (line 19) | def resources_with_duplicate_datagouv_id(markdown: true) do FILE: apps/transport/lib/datagouvfr/authentication.ex class Datagouvfr.Authentication (line 20) | defmodule Datagouvfr.Authentication class Datagouvfr.Authentication.Wrapper (line 1) | defmodule Datagouvfr.Authentication.Wrapper method impl (line 7) | def impl, do: Application.get_env(:transport, :authentication_impl) class Datagouvfr.Authentication.Dummy (line 10) | defmodule Datagouvfr.Authentication.Dummy method get_token! (line 17) | def get_token!(_), do: %{token: "token"} method client (line 33) | def client(token \\ nil) do method authorize_url (line 42) | def authorize_url do method get_token! (line 49) | def get_token!(params \\ []) do method authorize_url (line 57) | def authorize_url(client, params) do method get_token (line 63) | def get_token(client, params, headers) do FILE: apps/transport/lib/datagouvfr/client.ex class Datagouvfr.Client (line 1) | defmodule Datagouvfr.Client FILE: apps/transport/lib/datagouvfr/client/api.ex class Datagouvfr.Client.API (line 1) | defmodule Datagouvfr.Client.API method http_client (line 14) | defp http_client, do: Application.fetch_env!(:transport, :httpoison_impl) method api_key_headers (line 16) | def api_key_headers do method decode_body (line 21) | def decode_body({:ok, %HTTPoison.Response{body: "", status_code: statu... method decode_body (line 32) | def decode_body({:error, %HTTPoison.Error{} = error}) do method post (line 42) | def post(path, body, headers, blank \\ false) method request (line 79) | def request(method, path, body \\ "", headers \\ [], options \\ []) do method request_url (line 91) | defp request_url(method, url, body \\ "", headers \\ [], options \\ []... method perform_request (line 100) | def perform_request(method, url, body, headers, options) do method perform_request (line 104) | def perform_request(_method, _url, _body, _headers, _options, 0) do method stream (line 120) | def stream(path, method \\ :get) do method fetch_all_pages! (line 144) | def fetch_all_pages!(path, method \\ :get) do method fetch_all_pages (line 166) | def fetch_all_pages(path, method \\ :get) do FILE: apps/transport/lib/datagouvfr/client/community_resources.ex class Datagouvfr.Client.CommunityResources (line 1) | defmodule Datagouvfr.Client.CommunityResources method impl (line 11) | defp impl, do: Application.get_env(:transport, :community_resources_impl) method get (line 12) | def get(dataset_id), do: impl().get(dataset_id) method delete (line 13) | def delete(dataset_id, resource_id), do: impl().delete(dataset_id, res... class Datagouvfr.Client.CommunityResources.API (line 16) | defmodule Datagouvfr.Client.CommunityResources.API method delete (line 33) | def delete(dataset_datagouv_id, resource_datagouv_id) do class Datagouvfr.Client.StubCommunityResources (line 41) | defmodule Datagouvfr.Client.StubCommunityResources method get (line 47) | def get(_dataset_id) do method delete (line 51) | def delete(_dataset_id, _resource_id) do FILE: apps/transport/lib/datagouvfr/client/datasets.ex class Datagouvfr.Client.Datasets (line 1) | defmodule Datagouvfr.Client.Datasets method new (line 69) | def new(map), do: impl().new(map) method get_id_from_url (line 72) | def get_id_from_url(url), do: impl().get_id_from_url(url) method get_infos_from_url (line 75) | def get_infos_from_url(url), do: impl().get_infos_from_url(url) method get_followers (line 81) | def get_followers(dataset_id), do: impl().get_followers(dataset_id) method get (line 88) | def get(id), do: impl().get(id) method impl (line 90) | defp impl, do: Application.get_env(:transport, :datasets_impl) class Datagouvfr.Client.Datasets.External (line 93) | defmodule Datagouvfr.Client.Datasets.External method new (line 107) | def new(%{} = map) do method get_id_from_url (line 114) | def get_id_from_url(url) do method get_infos_from_url (line 122) | def get_infos_from_url(url) do method get_followers (line 135) | def get_followers(dataset_id) do method get (line 146) | def get(id) do method accumulator_atomizer (line 153) | def accumulator_atomizer({key, value}, m) do method keys (line 158) | defp keys do FILE: apps/transport/lib/datagouvfr/client/discussions.ex class Datagouvfr.Client.Discussions (line 36) | defmodule Datagouvfr.Client.Discussions class Datagouvfr.Client.Discussions.Wrapper (line 1) | defmodule Datagouvfr.Client.Discussions.Wrapper method get (line 8) | def get(id), do: impl().get(id) method post (line 11) | def post(%Plug.Conn{} = conn, discussion_id, comment, close: close), method post (line 15) | def post(%Plug.Conn{} = conn, dataset_id, title, comment), do: impl(... method impl (line 17) | defp impl, do: Application.fetch_env!(:transport, :datagouvfr_discus... class Datagouvfr.Client.Discussions.Dummy (line 20) | defmodule Datagouvfr.Client.Discussions.Dummy method get (line 27) | def get(_), do: [] method post (line 30) | def post(%Plug.Conn{}, _, _, close: _), do: {:ok, nil} method post (line 33) | def post(%Plug.Conn{}, _, _, _), do: {:ok, nil} method post (line 55) | def post(%Plug.Conn{} = conn, discussion_id, comment) do method post (line 61) | def post(%Plug.Conn{} = conn, discussion_id, comment, close: close) do method get (line 90) | def get(id) do FILE: apps/transport/lib/datagouvfr/client/oauth.ex class Datagouvfr.Client.OAuth (line 1) | defmodule Datagouvfr.Client.OAuth method get (line 15) | def get(conn_or_token, path, headers \\ [], opts \\ []) do method post (line 20) | def post(%Plug.Conn{} = conn, path, body \\ "", headers \\ [], opts \\... method put (line 27) | def put(%Plug.Conn{} = conn, path, body \\ "", headers \\ [], opts \\ ... method delete (line 34) | def delete(%Plug.Conn{} = conn, path, headers \\ [], opts \\ []) do method request (line 49) | def request(method, conn_or_token, path, body, headers, opts) do method get_client (line 67) | def get_client(%Plug.Conn{} = conn) do method get_client (line 74) | def get_client(%OAuth2.AccessToken{} = token), do: Authentication.clie... FILE: apps/transport/lib/datagouvfr/client/organization.ex class Datagouvfr.Client.Organization (line 13) | defmodule Datagouvfr.Client.Organization class Datagouvfr.Client.Organization.Wrapper (line 1) | defmodule Datagouvfr.Client.Organization.Wrapper method get (line 7) | def get(id, opts), do: impl().get(id, opts) method get (line 8) | def get(id), do: impl().get(id) method impl (line 10) | defp impl, do: Application.get_env(:transport, :organization_impl) method get (line 25) | def get(id, opts \\ []) do FILE: apps/transport/lib/datagouvfr/client/resources.ex class Datagouvfr.Client.Resources (line 1) | defmodule Datagouvfr.Client.Resources method update (line 12) | def update(map), do: impl().update(map) method update (line 18) | def update(conn, map), do: impl().update(conn, map) method get (line 21) | def get(%{"resource_id" => _id} = params), do: impl().get(params) method get (line 23) | def get(_), do: %{} method delete (line 26) | def delete(%Plug.Conn{} = conn, %{"dataset_id" => _, "resource_id" => ... method impl (line 28) | def impl, do: Application.get_env(:transport, :resources_impl) class Datagouvfr.Client.Resources.External (line 31) | defmodule Datagouvfr.Client.Resources.External method update (line 51) | def update( method update (line 70) | def update(conn, %{"resource_file" => _file} = params) do method update (line 90) | def update(conn, %{"resource_id" => _} = params) do method update (line 116) | def update(conn, %{"url" => _url, "dataset_id" => dataset_id} = para... method get (line 133) | def get(%{"resource_id" => _id} = params) do method delete (line 143) | def delete(%Plug.Conn{} = conn, %{"dataset_id" => _, "resource_id" =... method put_mime (line 148) | defp put_mime(payload, params) do method upload_query (line 157) | defp upload_query(conn, %{"resource_file" => %{path: filepath, filen... method upload_query (line 166) | defp upload_query(_conn, _), do: {:error, "no file to upload"} method make_path (line 169) | defp make_path(params, suffix \\ []) method make_path (line 171) | defp make_path(%{"dataset_id" => d_id, "resource_id" => r_id}, suffix), method make_path (line 174) | defp make_path(%{"dataset_id" => d_id}, suffix), do: Path.join(["dat... method multipart_upload (line 176) | defp multipart_upload(filepath, filename) do method remove_special_characters (line 197) | def remove_special_characters(value) do FILE: apps/transport/lib/datagouvfr/client/reuses.ex class Datagouvfr.Client.Reuses (line 22) | defmodule Datagouvfr.Client.Reuses class Datagouvfr.Client.Reuses.Wrapper (line 1) | defmodule Datagouvfr.Client.Reuses.Wrapper method impl (line 7) | def impl, do: Application.fetch_env!(:transport, :datagouvfr_reuses) method get (line 9) | def get(dataset), do: impl().get(dataset) class Datagouvfr.Client.Reuses.Dummy (line 12) | defmodule Datagouvfr.Client.Reuses.Dummy method get (line 19) | def get(_), do: {:ok, []} method get (line 33) | def get(%{datagouv_id: dataset_id}) do method add_name (line 47) | defp add_name(%{"owner" => nil} = reuse), do: reuse |> Map.put("owner"... method add_name (line 48) | defp add_name(reuse), do: put_in(reuse, ["owner", "name"], get_name(re... method get_name (line 51) | defp get_name(%{"owner" => %{"name" => name}}), do: name method get_name (line 52) | defp get_name(%{"organization" => %{"name" => name}}), do: name method get_name (line 53) | defp get_name(%{"owner" => %{"first_name" => f_n, "last_name" => l_n}}... method get_name (line 54) | defp get_name(reuse), do: reuse FILE: apps/transport/lib/datagouvfr/client/user.ex class Datagouvfr.Client.User (line 38) | defmodule Datagouvfr.Client.User class Datagouvfr.Client.User.Wrapper (line 1) | defmodule Datagouvfr.Client.User.Wrapper method impl (line 7) | def impl, do: Application.get_env(:transport, :user_impl) class Datagouvfr.Client.User.Dummy (line 10) | defmodule Datagouvfr.Client.User.Dummy method me (line 17) | def me(_), method me (line 54) | def me(conn_or_token, exclude_fields \\ []) do method get (line 63) | def get(id) do method xfields (line 70) | defp xfields(exclude_fields) do FILE: apps/transport/lib/db/administrative_division.ex class DB.AdministrativeDivision (line 1) | defmodule DB.AdministrativeDivision method changeset (line 55) | def changeset(administrative_division, attrs) do method validate_type_insee_is_consistent (line 63) | def validate_type_insee_is_consistent(changeset) do method load_searchable_administrative_divisions (line 82) | def load_searchable_administrative_divisions do method search (line 86) | def search(territoires, term) do method names (line 97) | def names(territories) do method sorted (line 111) | def sorted(territories) do method display_type (line 131) | def display_type(%DB.AdministrativeDivision{type: :commune}), do: dget... method display_type (line 133) | def display_type(%DB.AdministrativeDivision{type: :departement}), method display_type (line 136) | def display_type(%DB.AdministrativeDivision{type: :epci}), do: dgettex... method display_type (line 137) | def display_type(%DB.AdministrativeDivision{type: :region}), do: dgett... method display_type (line 138) | def display_type(%DB.AdministrativeDivision{type: :pays}), do: dgettex... FILE: apps/transport/lib/db/aom.ex class DB.AOM (line 1) | defmodule DB.AOM method get (line 30) | def get(insee_commune_principale: nil), do: nil method get (line 31) | def get(insee_commune_principale: insee), do: Repo.get_by(AOM, insee_c... FILE: apps/transport/lib/db/api_request.ex class DB.APIRequest (line 1) | defmodule DB.APIRequest FILE: apps/transport/lib/db/autocomplete.ex class DB.Autocomplete (line 1) | defmodule DB.Autocomplete FILE: apps/transport/lib/db/breaking_news.ex class DB.BreakingNews (line 1) | defmodule DB.BreakingNews method get_breaking_news (line 15) | def get_breaking_news do method set_breaking_news (line 26) | def set_breaking_news(%{msg: ""}) do method set_breaking_news (line 31) | def set_breaking_news(%{level: level, msg: msg}) do FILE: apps/transport/lib/db/commune.ex class DB.Commune (line 1) | defmodule DB.Commune FILE: apps/transport/lib/db/company.ex class DB.Company (line 1) | defmodule DB.Company method changeset (line 40) | def changeset(struct, attrs \\ %{}) do FILE: apps/transport/lib/db/contact.ex class DB.Contact (line 1) | defmodule DB.Contact method base_query (line 57) | def base_query, do: from(c in __MODULE__, as: :contact) method search (line 59) | def search(%{"q" => q}) do method search (line 77) | def search(%{}), do: base_query() method safe_like_pattern (line 86) | def safe_like_pattern(value) do method insert! (line 90) | def insert!(%{} = fields), do: %__MODULE__{} |> changeset(fields) |> D... method display_name (line 98) | def display_name(%__MODULE__{first_name: first_name, last_name: last_n... method human? (line 111) | def human?(%__MODULE__{mailing_list_title: title}), do: is_nil(title) method mailing_list? (line 119) | def mailing_list?(%__MODULE__{} = object), do: !human?(object) method changeset (line 121) | def changeset(struct, attrs \\ %{}) do method save_organizations (line 158) | defp save_organizations(%Ecto.Changeset{} = changeset, %{}), do: chang... method cast_organization (line 162) | defp cast_organization(%Ecto.Changeset{} = changeset) do method organization_name (line 182) | def organization_name([]), do: @default_org_name method organization_name (line 184) | def organization_name(orgs) do method organizations (line 194) | defp organizations(%{"organizations" => orgs}), do: orgs method organizations (line 195) | defp organizations(%{organizations: orgs}), do: orgs method find_org (line 197) | defp find_org(%{"id" => id}), do: DB.Repo.get(DB.Organization, id) || ... method find_org (line 198) | defp find_org(%{id: id}), do: DB.Repo.get(DB.Organization, id) || %DB.... method find_org (line 199) | defp find_org(%{}), do: %DB.Organization{} method validate_names_or_mailing_list_title (line 201) | defp validate_names_or_mailing_list_title(%Ecto.Changeset{} = changese... method trim_fields (line 217) | defp trim_fields(%Ecto.Changeset{} = changeset, fields) do method capitalize_fields (line 223) | defp capitalize_fields(%Ecto.Changeset{} = changeset, fields) do method title_case (line 245) | def title_case(string) do method capitalize_per_word (line 249) | defp capitalize_per_word(string, split_join_char) do method uppercase_first (line 255) | defp uppercase_first(string) do method cast_phone_numbers (line 261) | defp cast_phone_numbers(%Ecto.Changeset{} = changeset) do method parse_phone_number (line 280) | defp parse_phone_number(%Ecto.Changeset{} = changeset, %ExPhoneNumber.... method lowercase_email (line 293) | defp lowercase_email(%Ecto.Changeset{} = changeset) do method put_hashed_fields (line 297) | defp put_hashed_fields(%Ecto.Changeset{} = changeset) do method admin_contact_ids (line 310) | def admin_contact_ids do method admin_datagouv_ids (line 324) | def admin_datagouv_ids do method regulator_datagouv_ids (line 338) | def regulator_datagouv_ids do method admin_contacts (line 350) | def admin_contacts do method regulator_contacts (line 364) | def regulator_contacts do method list_inactive_contacts (line 378) | def list_inactive_contacts(%DateTime{} = threshold) do method delete_inactive_contacts (line 389) | def delete_inactive_contacts(%DateTime{} = threshold) do FILE: apps/transport/lib/db/data_conversion.ex class DB.DataConversion (line 1) | defmodule DB.DataConversion method base_query (line 21) | def base_query, do: from(dc in DB.DataConversion, as: :data_conversion) method available_conversion_formats (line 26) | def available_conversion_formats, method converter_to_use (line 44) | def converter_to_use(convert_from, convert_to) do method join_resource_history_with_data_conversion (line 56) | def join_resource_history_with_data_conversion(%Ecto.Query{} = query, ... method default_converters (line 70) | defp default_converters(convert_froms, convert_tos) do method latest_data_conversions (line 79) | def latest_data_conversions(dataset_id, convert_to) do method delete_data_conversions (line 93) | def delete_data_conversions(conversions) do FILE: apps/transport/lib/db/data_import.ex class DB.DataImport (line 1) | defmodule DB.DataImport FILE: apps/transport/lib/db/data_import_batch.ex class DB.DataImportBatch (line 1) | defmodule DB.DataImportBatch FILE: apps/transport/lib/db/dataset.ex class DB.Dataset (line 1) | defmodule DB.Dataset method base_query (line 101) | def base_query do method all_datasets (line 105) | def all_datasets, do: from(d in DB.Dataset, as: :dataset) method archived (line 106) | def archived, do: base_query() |> where([dataset: d], not is_nil(d.arc... method inactive (line 107) | def inactive, do: from(d in DB.Dataset, as: :dataset, where: not d.is_... method hidden (line 108) | def hidden, do: from(d in DB.Dataset, as: :dataset, where: d.is_active... method include_hidden_datasets (line 109) | def include_hidden_datasets(%Ecto.Query{} = query), do: or_where(query... method base_with_hidden_datasets (line 110) | def base_with_hidden_datasets, do: base_query() |> include_hidden_data... method reject_archived_datasets (line 111) | def reject_archived_datasets(%Ecto.Query{} = query), do: where(query, ... method archived? (line 114) | def archived?(%__MODULE__{archived_at: nil}), do: false method archived? (line 115) | def archived?(%__MODULE__{archived_at: %DateTime{}}), do: true method active? (line 118) | def active?(%__MODULE__{is_active: is_active}), do: is_active method join_from_dataset_to_metadata (line 125) | def join_from_dataset_to_metadata(query, validator_name) do method last_resource_history (line 136) | def last_resource_history(dataset_id) do method type_to_str_map (line 155) | def type_to_str_map, method type_to_str (line 170) | def type_to_str(type), do: type_to_str_map()[type] method subtype_to_str (line 173) | def subtype_to_str(subtype) do method types (line 191) | def types, do: Map.keys(type_to_str_map()) method no_validations_query (line 194) | defp no_validations_query do method preload_without_validations (line 219) | defp preload_without_validations do method preload_without_validations (line 225) | defp preload_without_validations(query) do method preload_legal_owners (line 230) | defp preload_legal_owners(query) do method filter_by_fulltext (line 240) | def filter_by_fulltext(query, %{"q" => ""}), do: query method filter_by_fulltext (line 242) | def filter_by_fulltext(query, %{"q" => q}) do method filter_by_fulltext (line 250) | def filter_by_fulltext(query, _), do: query method filter_by_region (line 253) | defp filter_by_region(query, %{"region" => region}) do method filter_by_region (line 261) | defp filter_by_region(query, _), do: query method filter_by_departement (line 264) | def filter_by_departement(query, %{"departement" => insee}) do method filter_by_departement (line 317) | def filter_by_departement(query, _), do: query method filter_by_category (line 320) | defp filter_by_category(query, %{"filter" => filter_key}) do method filter_by_category (line 327) | defp filter_by_category(query, _), do: query method filter_by_custom_tag (line 334) | def filter_by_custom_tag(%Ecto.Query{} = query, %{"custom_tag" => cust... method filter_by_custom_tag (line 337) | def filter_by_custom_tag(%Ecto.Query{} = query, _), do: query method filter_by_feature (line 361) | def filter_by_feature(query, %{"features" => feature}) do method filter_by_feature (line 367) | def filter_by_feature(query, _), do: query method filter_by_mode (line 376) | defp filter_by_mode(query, _), do: query method filter_by_resource_format (line 379) | defp filter_by_resource_format(query, %{"format" => format}) do method filter_by_resource_format (line 385) | defp filter_by_resource_format(query, _), do: query method filter_by_type (line 388) | defp filter_by_type(query, %{"type" => type}), do: where(query, [d], d... method filter_by_type (line 389) | defp filter_by_type(query, _), do: query method filter_by_subtype (line 392) | defp filter_by_subtype(query, %{"subtype" => subtype}) do method filter_by_subtype (line 398) | defp filter_by_subtype(query, _), do: query method filter_by_epci (line 401) | def filter_by_epci(query, %{"epci" => epci}) do method filter_by_epci (line 456) | def filter_by_epci(query, _), do: query method filter_by_commune (line 459) | def filter_by_commune(query, %{"commune" => commune}) do method filter_by_commune (line 511) | def filter_by_commune(query, _), do: query method filter_by_offer (line 513) | defp filter_by_offer(query, %{"identifiant_offre" => identifiant_offre... method filter_by_offer (line 519) | defp filter_by_offer(query, _), do: query method filter_by_licence (line 522) | defp filter_by_licence(query, %{"licence" => "licence-ouverte"}), method filter_by_licence (line 525) | defp filter_by_licence(query, %{"licence" => licence}), do: where(quer... method filter_by_licence (line 526) | defp filter_by_licence(query, _), do: query method filter_by_organization (line 529) | defp filter_by_organization(query, %{"organization_id" => organization... method filter_by_organization (line 533) | defp filter_by_organization(query, _), do: query method list_datasets (line 536) | def list_datasets(%{} = params) do method list_datasets_no_order (line 543) | def list_datasets_no_order(%{} = params) do method order_datasets (line 571) | def order_datasets(datasets, %{"order_by" => "alpha"}), do: order_by(d... method order_datasets (line 572) | def order_datasets(datasets, %{"order_by" => "most_recent"}), do: orde... method order_datasets (line 574) | def order_datasets(datasets, %{"q" => q}), method order_datasets (line 581) | def order_datasets(datasets, _params) do method changeset (line 609) | def changeset(_) do method get_dataset (line 615) | def get_dataset(query, %{"dataset_id" => dataset_id}) do method apply_changeset (line 623) | defp apply_changeset(%__MODULE__{} = dataset, params) do method validate_spatial_area_overlap (line 708) | defp validate_spatial_area_overlap(%Ecto.Changeset{} = changeset, admi... method add_organization (line 724) | defp add_organization(%Ecto.Changeset{} = changeset, %{"organization" ... method add_organization (line 736) | defp add_organization(%Ecto.Changeset{} = changeset, _), do: changeset method maybe_set_custom_logo_changed_at (line 738) | defp maybe_set_custom_logo_changed_at(%Ecto.Changeset{} = changeset) do method get_legal_owners_aom (line 746) | defp get_legal_owners_aom(dataset, params) do method get_legal_owners_region (line 763) | defp get_legal_owners_region(dataset, params) do method get_administrative_divisions (line 777) | defp get_administrative_divisions(dataset, params) do method get_offers (line 791) | defp get_offers(dataset, params) do method get_dataset_subtypes (line 805) | defp get_dataset_subtypes(dataset, params) do method format_error (line 820) | defp format_error(changeset), do: "#{inspect(Ecto.Changeset.traverse_e... method link_to_datagouv (line 823) | def link_to_datagouv(%__MODULE__{} = dataset) do method datagouv_url (line 833) | def datagouv_url(%__MODULE__{slug: slug}) do method count_by_mode (line 838) | def count_by_mode(mode) do method count_coach (line 844) | def count_coach do method count_by_mode_query (line 851) | defp count_by_mode_query(mode) do method count_by_type (line 859) | def count_by_type(type) do method count_by_type (line 867) | def count_by_type, do: for(type <- __MODULE__.types(), into: %{}, do: ... method count_public_transport_has_realtime (line 870) | def count_public_transport_has_realtime do method count_by_custom_tag (line 878) | def count_by_custom_tag(custom_tag) do method get_by_slug (line 883) | def get_by_slug(slug) do method get_covered_area (line 901) | def get_covered_area(%__MODULE__{declarative_spatial_areas: declarativ... method get_covered_area_or_nil (line 906) | def get_covered_area_or_nil(%__MODULE__{} = d) do method official_resources (line 914) | def official_resources(%__MODULE__{resources: resources}), method official_resources (line 917) | def official_resources(%__MODULE__{}), do: [] method community_resources (line 920) | def community_resources(%__MODULE__{resources: resources}), method community_resources (line 923) | def community_resources(%__MODULE__{}), do: [] method formats (line 926) | def formats(%__MODULE__{} = dataset) do method formats (line 935) | def formats(_), do: [] method validate (line 939) | def validate(d), do: validate(d, force_validation: false) method validate (line 941) | def validate(%__MODULE__{id: id}, opt), do: validate(id, opt) method datasets_for_user (line 978) | def datasets_for_user(conn_or_token) do method get_resources_related_files (line 1034) | def get_resources_related_files(_), do: %{} method target_conversion_formats (line 1042) | def target_conversion_formats(%__MODULE__{}) do method validate_siren (line 1046) | defp validate_siren(%Ecto.Changeset{} = changeset) do method validate_organization_type (line 1061) | defp validate_organization_type(changeset) do method maybe_overwrite_licence (line 1072) | defp maybe_overwrite_licence(%Ecto.Changeset{} = changeset) do method has_real_time (line 1082) | defp has_real_time(changeset) do method set_is_hidden (line 1087) | defp set_is_hidden(%Ecto.Changeset{} = changeset) do method set_population (line 1095) | defp set_population(%Ecto.Changeset{} = changeset, administrative_divi... method resources_content_updated_at (line 1101) | def resources_content_updated_at(%__MODULE__{id: dataset_id}) do method should_skip_history? (line 1119) | def should_skip_history?(%__MODULE__{type: type} = dataset) do method has_licence_ouverte? (line 1123) | def has_licence_ouverte?(%__MODULE__{licence: licence}), do: licence i... method climate_resilience_bill? (line 1131) | def climate_resilience_bill?(%__MODULE__{} = dataset), do: has_custom_... method has_custom_tag? (line 1141) | def has_custom_tag?(%__MODULE__{custom_tags: custom_tags}, tag_name), ... method logo (line 1150) | def logo(%__MODULE__{logo: logo, custom_logo: custom_logo}), do: custo... method full_logo (line 1159) | def full_logo(%__MODULE__{full_logo: full_logo, custom_full_logo: cust... method experimental? (line 1168) | def experimental?(%__MODULE__{} = dataset), do: has_custom_tag?(datase... method reject_experimental_datasets (line 1170) | def reject_experimental_datasets(queryable) do method has_subtype? (line 1174) | def has_subtype?(%DB.Dataset{} = dataset, slug) do FILE: apps/transport/lib/db/dataset_follower.ex class DB.DatasetFollower (line 1) | defmodule DB.DatasetFollower method base_query (line 18) | def base_query, do: from(df in __MODULE__, as: :dataset_follower) method changeset (line 20) | def changeset(%__MODULE__{} = struct, attrs \\ %{}) do method follows_dataset? (line 30) | def follows_dataset?(nil, %DB.Dataset{}), do: false method follows_dataset? (line 32) | def follows_dataset?(%DB.Contact{id: contact_id}, %DB.Dataset{id: data... method follow! (line 39) | def follow!(%DB.Contact{id: contact_id}, %DB.Dataset{id: dataset_id}, ... method unfollow! (line 49) | def unfollow!(%DB.Contact{id: contact_id}, %DB.Dataset{id: dataset_id}... FILE: apps/transport/lib/db/dataset_geographic_view.ex class DB.DatasetGeographicView (line 1) | defmodule DB.DatasetGeographicView FILE: apps/transport/lib/db/dataset_history.ex class DB.DatasetHistory (line 1) | defmodule DB.DatasetHistory method from_old_dataset_slug (line 18) | def from_old_dataset_slug(slug) do FILE: apps/transport/lib/db/dataset_history_resources.ex class DB.DatasetHistoryResources (line 1) | defmodule DB.DatasetHistoryResources FILE: apps/transport/lib/db/dataset_monthly_metric.ex class DB.DatasetMonthlyMetric (line 1) | defmodule DB.DatasetMonthlyMetric method changeset (line 28) | def changeset(struct, attrs \\ %{}) do method downloads_for_year (line 37) | def downloads_for_year(datasets, year) do method year_months (line 59) | def year_months(year) do FILE: apps/transport/lib/db/dataset_score.ex class DB.DatasetScore (line 1) | defmodule DB.DatasetScore method changeset (line 19) | def changeset(%DB.DatasetScore{} = dataset_score, attrs) do method between_0_and_1_if_exists (line 27) | def between_0_and_1_if_exists(:score, nil), do: [] method between_0_and_1_if_exists (line 28) | def between_0_and_1_if_exists(:score, _score), do: [score: "must be be... method base_query (line 30) | def base_query, do: from(ds in DB.DatasetScore, as: :dataset_score) method score_for_humans (line 92) | def score_for_humans(%__MODULE__{score: nil}), do: nil method score_for_humans (line 93) | def score_for_humans(%__MODULE__{score: score}), do: Kernel.round(scor... FILE: apps/transport/lib/db/dataset_subtype.ex class DB.DatasetSubtype (line 1) | defmodule DB.DatasetSubtype method changeset (line 19) | def changeset(%__MODULE__{} = struct, attrs \\ %{}) do FILE: apps/transport/lib/db/default_token.ex class DB.DefaultToken (line 1) | defmodule DB.DefaultToken method base_query (line 16) | def base_query, do: from(df in __MODULE__, as: :default_token) method changeset (line 18) | def changeset(%__MODULE__{} = struct, attrs \\ %{}) do FILE: apps/transport/lib/db/departement.ex class DB.Departement (line 1) | defmodule DB.Departement FILE: apps/transport/lib/db/encrypted/binary.ex class DB.Encrypted.Binary (line 1) | defmodule DB.Encrypted.Binary FILE: apps/transport/lib/db/epci.ex class DB.EPCI (line 1) | defmodule DB.EPCI method changeset (line 22) | def changeset(epci, attrs) do method allowed_types (line 30) | defp allowed_types, method allowed_mode_financement (line 33) | defp allowed_mode_financement, do: ["Fiscalité professionnelle unique"... FILE: apps/transport/lib/db/feature_usage.ex class DB.FeatureUsage (line 1) | defmodule DB.FeatureUsage method insert! (line 32) | def insert!(feature, contact_id, metadata) do FILE: apps/transport/lib/db/geo_data/geo_data.ex class DB.GeoData (line 1) | defmodule DB.GeoData method geo_data_subquery_init (line 15) | defp geo_data_subquery_init(geo_data_import_id) do method geo_data_as_geojson (line 22) | def geo_data_as_geojson(%{id: geo_data_import_id}, add_fields_func) do method count_lines_for_geo_data_import (line 37) | def count_lines_for_geo_data_import(nil), do: 0 method count_lines_for_geo_data_import (line 40) | def count_lines_for_geo_data_import(geo_data_import) do FILE: apps/transport/lib/db/geo_data/geo_data_import.ex class DB.GeoDataImport (line 1) | defmodule DB.GeoDataImport FILE: apps/transport/lib/db/gtfs/gtfs_agency.ex class DB.GTFS.Agency (line 1) | defmodule DB.GTFS.Agency FILE: apps/transport/lib/db/gtfs/gtfs_calendar.ex class DB.GTFS.Calendar (line 1) | defmodule DB.GTFS.Calendar FILE: apps/transport/lib/db/gtfs/gtfs_calendar_dates.ex class DB.GTFS.CalendarDates (line 1) | defmodule DB.GTFS.CalendarDates FILE: apps/transport/lib/db/gtfs/gtfs_stop.ex class DB.GTFS.Stops (line 1) | defmodule DB.GTFS.Stops FILE: apps/transport/lib/db/gtfs/gtfs_stop_times.ex class DB.GTFS.StopTimes (line 1) | defmodule DB.GTFS.StopTimes FILE: apps/transport/lib/db/gtfs/gtfs_trips.ex class DB.GTFS.Trips (line 1) | defmodule DB.GTFS.Trips FILE: apps/transport/lib/db/hidden_reuser_alert.ex class DB.HiddenReuserAlert (line 1) | defmodule DB.HiddenReuserAlert method base_query (line 29) | def base_query, do: from(hra in __MODULE__, as: :hidden_reuser_alert) method changeset (line 31) | def changeset(struct, attrs \\ %{}) do method hide! (line 47) | def hide!(%DB.Contact{id: contact_id}, %DB.Dataset{id: dataset_id}, ch... method active_hidden_alerts (line 71) | def active_hidden_alerts(%DB.Contact{id: contact_id}) do method hidden? (line 83) | def hidden?(hidden_alerts, dataset_id, check_type, opts \\ []) do FILE: apps/transport/lib/db/irve_valid_file.ex class DB.IRVEValidFile (line 1) | defmodule DB.IRVEValidFile FILE: apps/transport/lib/db/irve_valid_pdc.ex class DB.IRVEValidPDC (line 1) | defmodule DB.IRVEValidPDC method raw_data_to_schema (line 63) | def raw_data_to_schema(raw_data) do method insert_timestamps (line 69) | def insert_timestamps(data) do method valid_fields (line 77) | defp valid_fields, FILE: apps/transport/lib/db/logs_import.ex class DB.LogsImport (line 1) | defmodule DB.LogsImport FILE: apps/transport/lib/db/metrics.ex class DB.Metrics (line 1) | defmodule DB.Metrics method proxy_requests (line 57) | def proxy_requests(resources) do FILE: apps/transport/lib/db/multi_validation.ex class DB.MultiValidation (line 1) | defmodule DB.MultiValidation method base_query (line 37) | def base_query(opts \\ []) do method with_result (line 57) | def with_result do method join_resource_history_with_latest_validation (line 65) | def join_resource_history_with_latest_validation(query, validator) do method multi_validation_subquery (line 76) | defp multi_validation_subquery(v) do method filter_on_validator (line 93) | defp filter_on_validator(query, validator_name) do method already_validated? (line 99) | def already_validated?(%DB.ResourceHistory{id: id}, validator) do method resource_latest_validation (line 108) | def resource_latest_validation(resource_id, validator, opts \\ []) method resource_latest_validation (line 110) | def resource_latest_validation(_, nil, _), do: nil method resource_latest_validations (line 129) | def resource_latest_validations(resource_id, validator, %DateTime{} = ... method resource_history_latest_validation (line 139) | def resource_history_latest_validation(_, nil), do: nil method dataset_latest_validation (line 156) | def dataset_latest_validation(dataset_id, validators, opts \\ []) do method get_metadata_info (line 207) | def get_metadata_info(multi_validation, metadata_key, default \\ nil) method get_metadata_info (line 209) | def get_metadata_info(%__MODULE__{metadata: %DB.ResourceMetadata{metad... method get_metadata_info (line 213) | def get_metadata_info(_, _, default), do: default method get_metadata_modes (line 223) | def get_metadata_modes(multi_validation, default \\ nil) method get_metadata_modes (line 224) | def get_metadata_modes(%__MODULE__{metadata: %DB.ResourceMetadata{mode... method get_metadata_modes (line 225) | def get_metadata_modes(_, default), do: default method outdated? (line 247) | def outdated?(%DB.MultiValidation{} = multi_validation) do method outdated? (line 260) | def outdated?(_), do: nil FILE: apps/transport/lib/db/notification.ex class DB.Notification (line 1) | defmodule DB.Notification method base_query (line 30) | def base_query, do: from(n in __MODULE__, as: :notification) method insert! (line 38) | def insert!( method insert! (line 57) | def insert!( method changeset (line 108) | def changeset(struct, attrs \\ %{}) do method put_hashed_fields (line 127) | defp put_hashed_fields(%Ecto.Changeset{} = changeset) do FILE: apps/transport/lib/db/notification_subscription.ex class DB.NotificationSubscription (line 1) | defmodule DB.NotificationSubscription method base_query (line 36) | def base_query, do: from(ns in __MODULE__, as: :notification_subscript... method join_with_contact (line 38) | def join_with_contact(query) do method insert (line 43) | def insert(%{} = fields), do: %__MODULE__{} |> changeset(fields) |> DB... method insert! (line 44) | def insert!(%{} = fields), do: %__MODULE__{} |> changeset(fields) |> D... method changeset (line 46) | def changeset(struct, attrs \\ %{}) do method maybe_assoc_constraint_dataset (line 60) | defp maybe_assoc_constraint_dataset(%Ecto.Changeset{} = changeset) do method subscriptions_for_reason_dataset_and_role (line 73) | def subscriptions_for_reason_dataset_and_role(reason, %DB.Dataset{id: ... method subscriptions_for_reason_and_role (line 88) | def subscriptions_for_reason_and_role(reason, role) do method producer_subscriptions_for_datasets (line 95) | def producer_subscriptions_for_datasets(dataset_ids, contact_id) do method filter_out_admin_subscription (line 112) | def filter_out_admin_subscription(subscriptions, contact_id) do method subscriptions_for_dataset_and_role (line 125) | def subscriptions_for_dataset_and_role(%DB.Dataset{id: dataset_id}, ro... method create_producer_subscriptions (line 135) | def create_producer_subscriptions(%DB.Dataset{id: dataset_id}, %DB.Con... method delete_other_producers_subscriptions (line 163) | def delete_other_producers_subscriptions(%DB.Dataset{id: dataset_id}, ... method validate_reason_is_allowed_for_subscriptions (line 178) | defp validate_reason_is_allowed_for_subscriptions(changeset) do method validate_reason_by_role (line 189) | def validate_reason_by_role(changeset) do method validate_reason_by_scope (line 200) | def validate_reason_by_scope(changeset) do FILE: apps/transport/lib/db/offer.ex class DB.Offer (line 1) | defmodule DB.Offer method changeset (line 26) | def changeset(model, attrs) do method transform_modes (line 53) | defp transform_modes(%Ecto.Changeset{} = changeset, %{"modes" => modes... method add_aom (line 57) | defp add_aom(%Ecto.Changeset{} = changeset, %{"aom_siren" => aom_siren... FILE: apps/transport/lib/db/organization.ex class DB.Organization (line 1) | defmodule DB.Organization method base_query (line 27) | def base_query, do: from(o in __MODULE__, as: :organization) method changeset (line 29) | def changeset(struct, attrs \\ %{}) do FILE: apps/transport/lib/db/processing_report.ex class DB.ProcessingReport (line 1) | defmodule DB.ProcessingReport method changeset (line 19) | def changeset(processing_report, attrs) do FILE: apps/transport/lib/db/proxy_request.ex class DB.ProxyRequest (line 1) | defmodule DB.ProxyRequest FILE: apps/transport/lib/db/region.ex class DB.Region (line 1) | defmodule DB.Region method national (line 22) | def national, do: DB.Repo.get_by!(DB.Region, nom: "National") FILE: apps/transport/lib/db/repo.ex class DB.Repo (line 1) | defmodule DB.Repo FILE: apps/transport/lib/db/resource.ex class DB.Resource (line 1) | defmodule DB.Resource method base_query (line 79) | def base_query, do: from(r in DB.Resource, as: :resource) method join_dataset_with_resource (line 81) | def join_dataset_with_resource(query) do method filter_on_resource_id (line 86) | def filter_on_resource_id(query, resource_id) do method filter_on_dataset_id (line 90) | def filter_on_dataset_id(query, dataset_id) do method changeset (line 94) | def changeset(resource, params) do method gtfs? (line 125) | def gtfs?(%__MODULE__{format: "GTFS"}), do: true method gtfs? (line 126) | def gtfs?(_), do: false method gbfs? (line 129) | def gbfs?(%__MODULE__{format: "gbfs"}), do: true method gbfs? (line 130) | def gbfs?(_), do: false method netex? (line 133) | def netex?(%__MODULE__{format: "NeTEx"}), do: true method netex? (line 134) | def netex?(_), do: false method gtfs_rt? (line 137) | def gtfs_rt?(%__MODULE__{format: "gtfs-rt"}), do: true method gtfs_rt? (line 138) | def gtfs_rt?(%__MODULE__{format: "gtfsrt"}), do: true method gtfs_rt? (line 139) | def gtfs_rt?(_), do: false method siri? (line 142) | def siri?(%__MODULE__{format: "SIRI"}), do: true method siri? (line 143) | def siri?(_), do: false method siri_lite? (line 146) | def siri_lite?(%__MODULE__{format: "SIRI Lite"}), do: true method siri_lite? (line 147) | def siri_lite?(_), do: false method documentation? (line 150) | def documentation?(%__MODULE__{type: "documentation"}), do: true method documentation? (line 151) | def documentation?(_), do: false method community_resource? (line 154) | def community_resource?(%__MODULE__{is_community_resource: true}), do:... method community_resource? (line 155) | def community_resource?(_), do: false method real_time? (line 166) | def real_time?(%__MODULE__{} = resource) do method requestor_ref (line 185) | def requestor_ref(%__MODULE__{format: "SIRI", dataset: %DB.Dataset{} =... method requestor_ref (line 192) | def requestor_ref(%__MODULE__{}), do: nil method has_schema? (line 195) | def has_schema?(%__MODULE__{schema_name: schema_name}), do: not is_nil... method can_direct_download? (line 198) | def can_direct_download?(resource) do method pan_resource? (line 216) | def pan_resource?(%__MODULE__{dataset: %DB.Dataset{organization_id: or... method pan_resource? (line 220) | def pan_resource?(%__MODULE__{}), do: false method other_resources_query (line 223) | def other_resources_query(%__MODULE__{} = resource), method other_resources (line 231) | def other_resources(%__MODULE__{} = r), method by_id (line 237) | def by_id(query, id) do method get_related_files (line 244) | def get_related_files(%__MODULE__{id: resource_id}) do method get_related_geojson_info (line 249) | def get_related_geojson_info(resource_id), do: get_related_conversion_... method get_related_conversion_info (line 254) | def get_related_conversion_info(nil, _), do: nil method get_related_conversion_info (line 256) | def get_related_conversion_info(resource_id, format) do method content_updated_at (line 287) | def content_updated_at(%__MODULE__{id: id}), do: content_updated_at(id) method content_updated_at (line 289) | def content_updated_at(resource_id) do method download_validation_report_url (line 307) | def download_validation_report_url(%Plug.Conn{} = conn, %__MODULE__{fo... method download_validation_report_url (line 311) | def download_validation_report_url(%Plug.Conn{} = _conn, %__MODULE__{}... method download_url (line 315) | def download_url(%__MODULE__{} = resource) do method download_url (line 320) | def download_url( method download_url (line 341) | def download_url(%__MODULE__{dataset: %DB.Dataset{} = dataset} = resou... method hosted_on_datagouv? (line 371) | def hosted_on_datagouv?(%__MODULE__{url: url}) do method needs_stable_url? (line 376) | defp needs_stable_url?(%__MODULE__{latest_url: nil}), do: false method needs_stable_url? (line 378) | defp needs_stable_url?(%__MODULE__{url: url} = resource) do method link_to_folder? (line 394) | defp link_to_folder?(%URI{path: path}) do method served_by_proxy? (line 413) | def served_by_proxy?(%__MODULE__{url: url}) do method proxy_slug (line 425) | def proxy_slug(%__MODULE__{url: url} = resource) do method proxy_namespace (line 440) | def proxy_namespace(%__MODULE__{}), do: "proxy" method no_schema_name_for_public_transport (line 442) | def no_schema_name_for_public_transport(%Ecto.Changeset{} = changeset) do method count_by_format (line 458) | def count_by_format(format) do FILE: apps/transport/lib/db/resource_download.ex class DB.ResourceDownload (line 1) | defmodule DB.ResourceDownload FILE: apps/transport/lib/db/resource_history.ex class DB.ResourceHistory (line 1) | defmodule DB.ResourceHistory method base_query (line 25) | def base_query, do: from(rh in DB.ResourceHistory, as: :resource_history) method join_resource_with_latest_resource_history (line 27) | def join_resource_with_latest_resource_history(query) do method join_dataset_with_latest_resource_history (line 40) | def join_dataset_with_latest_resource_history(query) do method latest_resource_history_query (line 46) | defp latest_resource_history_query(resource_id) do method latest_resource_history (line 54) | def latest_resource_history(%DB.Resource{id: id}), do: latest_resource... method latest_resource_history (line 56) | def latest_resource_history(resource_id) do method latest_dataset_resources_history_infos (line 63) | def latest_dataset_resources_history_infos(%DB.Dataset{id: dataset_id}... method gtfs_flex? (line 81) | def gtfs_flex?(%__MODULE__{payload: %{"format" => "GTFS", "filenames" ... method gtfs_flex? (line 85) | def gtfs_flex?(%__MODULE__{}), do: false FILE: apps/transport/lib/db/resource_metadata.ex class DB.ResourceMetadata (line 1) | defmodule DB.ResourceMetadata method base_query (line 21) | def base_query, do: from(rm in DB.ResourceMetadata, as: :metadata) method join_validation_with_metadata (line 23) | def join_validation_with_metadata(query) do method join_resource_with_metadata (line 28) | def join_resource_with_metadata(query) do method where_up_to_date (line 33) | def where_up_to_date(query) do FILE: apps/transport/lib/db/resource_monthly_metric.ex class DB.ResourceMonthlyMetric (line 1) | defmodule DB.ResourceMonthlyMetric method changeset (line 21) | def changeset(struct, attrs \\ %{}) do method downloads_for_year (line 30) | def downloads_for_year(resources, year) do method download_statistics (line 45) | def download_statistics(datasets) do FILE: apps/transport/lib/db/resource_related.ex class DB.ResourceRelated (line 1) | defmodule DB.ResourceRelated method reason_to_str (line 21) | def reason_to_str(%__MODULE__{reason: reason}) do FILE: apps/transport/lib/db/resource_unavailability.ex class DB.ResourceUnavailability (line 1) | defmodule DB.ResourceUnavailability method ongoing_unavailability (line 21) | def ongoing_unavailability(%Resource{id: resource_id}) do method floor_float (line 48) | def floor_float(float, precision \\ 1) do method uptime_per_day (line 79) | def uptime_per_day(%Resource{id: resource_id}, nb_days) do method total_hours (line 103) | defp total_hours(rows, period_start) do FILE: apps/transport/lib/db/reuse.ex class DB.Reuse (line 1) | defmodule DB.Reuse method base_query (line 38) | def base_query, do: from(r in __MODULE__, as: :reuse) method search (line 40) | def search(%{} = args) do method search_by_query (line 47) | def search_by_query(query, %{"q" => q}) do method search_by_query (line 56) | def search_by_query(query, _), do: query method search_by_dataset_type (line 65) | def search_by_dataset_type(query, _), do: query method safe_like_pattern (line 74) | def safe_like_pattern(value) do method changeset (line 78) | def changeset(model, attrs) do method type_to_str (line 123) | def type_to_str(type) do method cast_datasets (line 137) | defp cast_datasets(%Ecto.Changeset{} = changeset, %{"datasets" => data... method transform_archived (line 149) | defp transform_archived(%Ecto.Changeset{} = changeset, params) do method transform_featured (line 153) | defp transform_featured(%Ecto.Changeset{} = changeset, params) do method transform_bool (line 157) | def transform_bool(%Ecto.Changeset{} = changeset, key, params) do method transform_tags (line 164) | defp transform_tags(%Ecto.Changeset{} = changeset, %{"tags" => tags}) do method transform_datagouv_id (line 168) | defp transform_datagouv_id(%Ecto.Changeset{} = changeset, %{"id" => id... method transform_metric_keys (line 172) | defp transform_metric_keys(%Ecto.Changeset{} = changeset, attributes) do FILE: apps/transport/lib/db/reuser_improved_data.ex class DB.ReuserImprovedData (line 1) | defmodule DB.ReuserImprovedData method base_query (line 19) | def base_query, do: from(rm in __MODULE__, as: :reuser_improved_data) method changeset (line 21) | def changeset(%__MODULE__{} = struct, attrs \\ %{}) do FILE: apps/transport/lib/db/stats_history.ex class DB.StatsHistory (line 1) | defmodule DB.StatsHistory FILE: apps/transport/lib/db/table_size_history.ex class DB.TableSizeHistory (line 1) | defmodule DB.TableSizeHistory FILE: apps/transport/lib/db/token.ex class DB.Token (line 1) | defmodule DB.Token method base_query (line 24) | def base_query, do: from(t in __MODULE__, as: :token) method personal_token? (line 26) | def personal_token?(%__MODULE__{organization_id: nil}), do: true method personal_token? (line 27) | def personal_token?(%__MODULE__{}), do: false method changeset (line 29) | def changeset(%__MODULE__{} = struct, attrs \\ %{}) do method organization_id (line 39) | def organization_id(%Ecto.Changeset{} = changeset) do method generate_secret (line 51) | defp generate_secret(%Ecto.Changeset{} = changeset) do method put_hashed_fields (line 56) | defp put_hashed_fields(%Ecto.Changeset{} = changeset) do FILE: apps/transport/lib/db/user_feedback.ex class DB.UserFeedback (line 1) | defmodule DB.UserFeedback method changeset (line 29) | def changeset(%__MODULE__{} = feedback, %{} = attrs) do method features (line 40) | def features, do: @features method ratings (line 43) | def ratings, do: @ratings method assoc_contact_from_user_id (line 45) | def assoc_contact_from_user_id(changeset, user_id) do method sanitize_inputs (line 56) | defp sanitize_inputs(%Ecto.Changeset{} = changeset, keys) do method sanitize_field (line 60) | defp sanitize_field(%Ecto.Changeset{} = changeset, key) do method lowercase_email (line 67) | defp lowercase_email(%Ecto.Changeset{} = changeset) do FILE: apps/transport/lib/enroute/chouette_valid_rulesets_client.ex class Transport.EnRoute.ChouetteValidRulesetsClient (line 48) | defmodule Transport.EnRoute.ChouetteValidRulesetsClient class Transport.EnRoute.ChouetteValidRulesetsClient.Wrapper (line 1) | defmodule Transport.EnRoute.ChouetteValidRulesetsClient.Wrapper method list_versions (line 25) | def list_versions(slug) do method find_ruleset_id (line 38) | def find_ruleset_id(expected_slug) do method impl (line 45) | def impl, do: Application.get_env(:transport, :enroute_rulesets_client) method list_rulesets (line 57) | def list_rulesets do method get_ruleset (line 62) | def get_ruleset(slug) do method create_ruleset (line 71) | def create_ruleset(definition, name, slug) do method update_ruleset (line 76) | def update_ruleset(definition, name, slug) do method delete_ruleset (line 81) | def delete_ruleset(ruleset_id) do method upsert_ruleset (line 89) | defp upsert_ruleset(method, path, definition, name, slug) do method base_request (line 117) | defp base_request do method auth (line 121) | defp auth do method http_client (line 125) | defp http_client, do: Transport.Req.impl() class Transport.EnRoute.ChouetteValidRulesetsClient.Slugs (line 128) | defmodule Transport.EnRoute.ChouetteValidRulesetsClient.Slugs method check_slug! (line 136) | def check_slug!(slug) do method versioned_slug? (line 151) | def versioned_slug?(slug) do method sibling_slugs? (line 167) | def sibling_slugs?(slug_a, slug_b) do method parse_slug (line 174) | defp parse_slug(slug) do FILE: apps/transport/lib/gtfs/utils.ex class Transport.GTFS.Utils (line 1) | defmodule Transport.GTFS.Utils method get_position (line 14) | def get_position(record, field) do method convert_text_to_float (line 36) | def convert_text_to_float(input) do method csv_get_with_default! (line 46) | def csv_get_with_default!(map, field, default_value, mandatory_column ... method csv_get_with_default (line 66) | def csv_get_with_default(map, field, default_value) do method to_stream_of_maps (line 80) | def to_stream_of_maps(file_stream) do FILE: apps/transport/lib/http/utils.ex class Transport.Http.Utils (line 1) | defmodule Transport.Http.Utils method location_header (line 7) | def location_header(headers), do: header_value(headers, "location") method header_value (line 9) | def header_value(headers, header) do method reencode_body_to_utf8 (line 21) | def reencode_body_to_utf8(body, headers) do method parse_charset (line 28) | defp parse_charset([content_type]), do: parse_charset(content_type) method parse_charset (line 51) | defp parse_charset(_), do: nil method reencode_body (line 57) | defp reencode_body(nil, body), do: body method reencode_body (line 58) | defp reencode_body(:utf8, body), do: body method reencode_body (line 61) | defp reencode_body(:latin1, body) do method reencode_body (line 76) | defp reencode_body(other, body) do FILE: apps/transport/lib/irve/data_frame.ex class Transport.IRVE.DataFrame (line 1) | defmodule Transport.IRVE.DataFrame method remap_schema_type (line 45) | def remap_schema_type(input_type, strict \\ true) method remap_schema_type (line 47) | def remap_schema_type(input_type, true = _strict) do method remap_schema_type (line 55) | def remap_schema_type(input_type, false = _strict) do method dataframe_from_csv_body! (line 119) | def dataframe_from_csv_body!(body, schema \\ Transport.IRVE.StaticIRVE... method guess_delimiter! (line 187) | def guess_delimiter!(body) do method first_line (line 203) | def first_line(body) do method remove_bom (line 209) | def remove_bom(string) do method separators_frequencies (line 224) | def separators_frequencies(string) do method preprocess_xy_coordinates (line 272) | def preprocess_xy_coordinates(df) do method preprocess_boolean (line 311) | def preprocess_boolean(df, field_name, keep_as_string \\ false) do method add_empty_column_if_missing (line 348) | def add_empty_column_if_missing(dataframe, field_name, keep_as_string ... class ColumnDelimiterGuessError (line 140) | defmodule ColumnDelimiterGuessError method message (line 150) | def message(%{col_seps_frequencies: frequencies}) do FILE: apps/transport/lib/irve/database_exporter.ex class Transport.IRVE.DatabaseExporter (line 1) | defmodule Transport.IRVE.DatabaseExporter method export_to_csv (line 12) | def export_to_csv(path) do method build_data_frame (line 16) | def build_data_frame do method mutate_coordinates_columns (line 46) | def mutate_coordinates_columns(df) do method database_field_list (line 58) | def database_field_list do method additional_file_field_list (line 64) | def additional_file_field_list do method export_field_list (line 79) | def export_field_list do FILE: apps/transport/lib/irve/database_importer.ex class Transport.IRVE.DatabaseImporter (line 1) | defmodule Transport.IRVE.DatabaseImporter method try_write_to_db (line 23) | def try_write_to_db(file_path, %{ method write_to_db (line 49) | def write_to_db( method write_new_file! (line 88) | defp write_new_file!( method write_pdcs (line 126) | defp write_pdcs(rows_stream, file_id) do method delete_previous_file_and_pdcs (line 138) | defp delete_previous_file_and_pdcs(datagouv_dataset_id, datagouv_resou... FILE: apps/transport/lib/irve/deduplicator.ex class Transport.IRVE.Deduplicator (line 1) | defmodule Transport.IRVE.Deduplicator method add_duplicates_column (line 54) | def add_duplicates_column(%Explorer.DataFrame{} = df) do method discard_duplicates (line 66) | def discard_duplicates(df) do method remove_non_concerne_rule (line 79) | defp remove_non_concerne_rule(df) do method unique_rule (line 89) | defp unique_rule(df) do method in_prioritary_datasets_rule (line 99) | defp in_prioritary_datasets_rule(df) do method date_maj_rule (line 125) | defp date_maj_rule(df) do method datagouv_last_modified_rule (line 151) | defp datagouv_last_modified_rule(df) do method exact_duplicate_in_same_file_rule (line 186) | defp exact_duplicate_in_same_file_rule(df) do method remove_undecided_duplicates_rule (line 213) | defp remove_undecided_duplicates_rule(df) do FILE: apps/transport/lib/irve/dynamic_irve_schema.ex class Transport.IRVE.DynamicIRVESchema (line 1) | defmodule Transport.IRVE.DynamicIRVESchema method schema_content (line 7) | def schema_content do method build_schema_fields_list (line 12) | def build_schema_fields_list do FILE: apps/transport/lib/irve/extractor.ex class Transport.IRVE.Extractor (line 1) | defmodule Transport.IRVE.Extractor method datagouv_resources (line 19) | def datagouv_resources(pagination_options \\ []) do method process_data_gouv_page (line 35) | def process_data_gouv_page(%{url: url} = page) do method fetch_in! (line 44) | def fetch_in!(list, [key]), do: Map.fetch!(list, key) method fetch_in! (line 45) | def fetch_in!(list, [key | keys]), do: fetch_in!(Map.fetch!(list, key)... method unpack_resources (line 50) | def unpack_resources(dataset) do method extract_organization_or_owner_name (line 65) | defp extract_organization_or_owner_name(dataset) do method extract_owner_name (line 69) | defp extract_owner_name(dataset) do method remap_fields (line 76) | def remap_fields(resource) do method download_and_parse_all (line 105) | def download_and_parse_all(resources, progress_callback \\ nil) do method download_and_parse_one (line 147) | def download_and_parse_one(row, index) do method process_resource_body (line 161) | def process_resource_body(%{http_status: 200} = row, body) do method process_resource_body (line 176) | def process_resource_body(row, _body), do: row method insert_report! (line 181) | def insert_report!(resources) do FILE: apps/transport/lib/irve/fetcher.ex class Transport.IRVE.Fetcher (line 1) | defmodule Transport.IRVE.Fetcher method cache_dir (line 9) | def cache_dir, do: Path.join(__ENV__.file, "../../../../../cache-dir")... method http_options (line 11) | def http_options do method pages (line 28) | def pages(base_url, pagination_options \\ []) do method get! (line 35) | def get!(url, options \\ []) do FILE: apps/transport/lib/irve/http_pagination.ex class Transport.IRVE.HTTPPagination (line 1) | defmodule Transport.IRVE.HTTPPagination method naive_paginated_urls_stream (line 24) | def naive_paginated_urls_stream(base_url, http_client, http_client_opt... method num_pages (line 76) | def num_pages(total_items: 0, items_per_page: _), do: 0 method num_pages (line 77) | def num_pages(total_items: total_items, items_per_page: items_per_page... FILE: apps/transport/lib/irve/processing.ex class Transport.IRVE.Processing (line 1) | defmodule Transport.IRVE.Processing method read_as_data_frame (line 10) | def read_as_data_frame(body) do method read_as_uncasted_data_frame (line 23) | def read_as_uncasted_data_frame(body) do method convert_to_dataframe! (line 35) | def convert_to_dataframe!(body) do method convert_to_uncasted_dataframe! (line 47) | defp convert_to_uncasted_dataframe!(body) do method preprocess_coordinates (line 57) | def preprocess_coordinates(dataframe) do method preprocess_boolean_fields (line 61) | def preprocess_boolean_fields(dataframe, keep_as_string \\ false) do method add_missing_optional_columns (line 79) | def add_missing_optional_columns(dataframe, keep_as_string \\ false) do method select_fields (line 86) | def select_fields(dataframe) do FILE: apps/transport/lib/irve/raw_report_item.ex class Transport.IRVE.RawReportItem (line 1) | defmodule Transport.IRVE.RawReportItem FILE: apps/transport/lib/irve/raw_static_consolidation.ex class Transport.IRVE.RawStaticConsolidation (line 1) | defmodule Transport.IRVE.RawStaticConsolidation method download_resource_content! (line 51) | def download_resource_content!(url) do method process_resource (line 60) | def process_resource(row, body, status, extension) do method maybe_rename_bogus_num_pdl (line 109) | def maybe_rename_bogus_num_pdl(_, body), do: body method ensure_utf8 (line 133) | def ensure_utf8(body) do method run_cheap_blocking_checks (line 150) | def run_cheap_blocking_checks(body, extension) do method ensure_producer_is_org! (line 174) | def ensure_producer_is_org!(%{dataset_organisation_id: "???"}), do: ra... method ensure_producer_is_org! (line 176) | def ensure_producer_is_org!(_row), do: :ok method log_debugging_stuff (line 182) | def log_debugging_stuff(resource_id, df) do method maybe_concat_rows (line 196) | def maybe_concat_rows({:error, error}, main_df), do: {main_df, error} method maybe_concat_rows (line 197) | def maybe_concat_rows({:ok, df}, nil), do: {df, nil} method maybe_concat_rows (line 198) | def maybe_concat_rows({:ok, df}, main_df), do: {Explorer.DataFrame.con... method exclude_irrelevant_resources (line 200) | def exclude_irrelevant_resources(stream) do method build_report_item (line 210) | def build_report_item(row, body, extension, optional_error) do method maybe_filter (line 221) | def maybe_filter(stream, nil), do: stream method build_aggregate_and_report! (line 236) | def build_aggregate_and_report!(options \\ []) do method process_individual_resource_and_report (line 263) | def process_individual_resource_and_report(row, main_df, report) do FILE: apps/transport/lib/irve/simple_consolidation.ex class Transport.IRVE.SimpleConsolidation (line 1) | defmodule Transport.IRVE.SimpleConsolidation method process (line 22) | def process(opts \\ []) do method maybe_log_items (line 63) | def maybe_log_items(stream, debug) do method maybe_limit (line 74) | def maybe_limit(stream, nil), do: stream method resource_list (line 76) | def resource_list do method process_or_rescue (line 83) | def process_or_rescue(resource) do method process_resource (line 90) | def process_resource(resource) do method generate_report (line 134) | def generate_report(report_rows, destination: destination) do method write_consolidated_file (line 180) | def write_consolidated_file(df, base_name, :send_to_s3) do method write_consolidated_file (line 194) | def write_consolidated_file(df, base_name, :local_disk) do method storage_path (line 200) | def storage_path(resource_id) do method with_maybe_cached_download_on_disk (line 210) | def with_maybe_cached_download_on_disk(resource, file_path, extension,... method with_maybe_cached_download_on_disk (line 221) | def with_maybe_cached_download_on_disk(resource, file_path, extension,... method download! (line 226) | def download!(resource_id, url, file) do FILE: apps/transport/lib/irve/simple_report_item.ex class Transport.IRVE.SimpleReportItem (line 1) | defmodule Transport.IRVE.SimpleReportItem method from_result (line 22) | def from_result({:error_occurred, error, resource}) do method from_result (line 26) | def from_result({status, resource}) do method to_map (line 30) | def to_map(%__MODULE__{} = report_row) do method new (line 36) | defp new(resource, status, error) do method maybe_error_message (line 52) | defp maybe_error_message(nil), do: nil method maybe_error_message (line 53) | defp maybe_error_message(error), do: Exception.message(error) method maybe_error_type (line 55) | defp maybe_error_type(nil), do: nil method maybe_error_type (line 56) | defp maybe_error_type(error), do: error.__struct__ |> inspect() FILE: apps/transport/lib/irve/static_irve_schema.ex class Transport.IRVE.StaticIRVESchema (line 1) | defmodule Transport.IRVE.StaticIRVESchema method schema_content (line 11) | def schema_content do method field_names_list (line 31) | def field_names_list do method boolean_columns (line 57) | def boolean_columns do method optional_fields (line 74) | def optional_fields do FILE: apps/transport/lib/irve/static_probes.ex class Transport.IRVE.Static.Probes (line 1) | defmodule Transport.IRVE.Static.Probes method first_line (line 12) | def first_line(body) do method has_id_pdc_itinerance (line 25) | def has_id_pdc_itinerance(body) do method hint_header_separator (line 55) | def hint_header_separator(body) do method maybe_find_header_separator (line 64) | def maybe_find_header_separator(regex, first_line) do method probably_v1_schema (line 78) | def probably_v1_schema(body) do FILE: apps/transport/lib/irve/validator/data_frame_validation.ex class Transport.IRVE.Validator.DataFrameValidation (line 1) | defmodule Transport.IRVE.Validator.DataFrameValidation method setup_computed_field_validation_columns (line 17) | def setup_computed_field_validation_columns(%Explorer.DataFrame{} = df... method extract_field_definition_data! (line 30) | def extract_field_definition_data!(field_def) do method setup_computed_field_validation_column (line 46) | def setup_computed_field_validation_column( method setup_computed_row_validation_column (line 71) | def setup_computed_row_validation_column(%Explorer.DataFrame{} = df) do FILE: apps/transport/lib/irve/validator/field_validation.ex class Transport.IRVE.Validator.FieldValidation (line 1) | defmodule Transport.IRVE.Validator.FieldValidation method column_valid? (line 105) | def column_valid?(_df, field_name, type, format, constraints) do FILE: apps/transport/lib/irve/validator/summary.ex class Transport.IRVE.Validator.Summary (line 1) | defmodule Transport.IRVE.Validator.Summary FILE: apps/transport/lib/irve/validator/validator.ex class Transport.IRVE.Validator (line 1) | defmodule Transport.IRVE.Validator method compute_validation (line 6) | def compute_validation(%Explorer.DataFrame{} = df) do method validate (line 21) | def validate(path, extension \\ ".csv") do method full_file_valid? (line 38) | def full_file_valid?(%Explorer.DataFrame{} = df) do method summarize (line 54) | def summarize(%Explorer.DataFrame{} = df) do method validate_and_summarize (line 81) | def validate_and_summarize(path, extension \\ ".csv") do method summarize_total_counts (line 98) | defp summarize_total_counts(df) do method summarize_column_errors (line 104) | defp summarize_column_errors(df) do method error_samples (line 114) | defp error_samples(df, column_errors) do FILE: apps/transport/lib/jobs/RamboLauncher.ex class Transport.RamboLauncher (line 1) | defmodule Transport.RamboLauncher method impl (line 7) | def impl, do: Application.get_env(:transport, :rambo_impl) method run (line 9) | def run(binary_path, args, opts \\ []), do: impl().run(binary_path, ar... class Transport.Rambo (line 12) | defmodule Transport.Rambo method run (line 19) | def run(binary_path, args, opts) do FILE: apps/transport/lib/jobs/analyze_irve_job.ex class Transport.Jobs.AnalyzeIRVEJob (line 1) | defmodule Transport.Jobs.AnalyzeIRVEJob method perform (line 17) | def perform(%Oban.Job{id: job_id}) do method start_async_work (line 24) | def start_async_work do method notify (line 53) | def notify(job_id, status, progress \\ nil) do method wait_for_work_completion (line 63) | def wait_for_work_completion(job_id) do FILE: apps/transport/lib/jobs/archive_metrics_job.ex class Transport.Jobs.ArchiveMetricsJob (line 1) | defmodule Transport.Jobs.ArchiveMetricsJob method perform (line 26) | def perform(%Oban.Job{args: %{"date" => date}}) do method to_midnight_datetime (line 77) | def to_midnight_datetime(%Date{} = date) do method days_to_archive (line 81) | def days_to_archive do FILE: apps/transport/lib/jobs/backfill/backfill_metadata_non_gtfs_resource_history.ex class Transport.Jobs.Backfill.ResourceHistoryMetadataNonGTFS (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryMetadataNonGTFS method perform (line 17) | def perform(%{args: %{"resource_history_id" => resource_history_id, "b... method perform (line 29) | def perform(%{args: %{"resource_history_id" => resource_history_id}}) do method fetch_next (line 34) | def fetch_next(resource_history_id) do method update_resource_history (line 44) | def update_resource_history(resource_history_id) do method do_update (line 55) | def do_update(%ResourceHistory{} = rh), do: rh FILE: apps/transport/lib/jobs/backfill/backfill_resource_history_filesize.ex class Transport.Jobs.Backfill.ResourceHistoryFileSize (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryFileSize method perform (line 11) | def perform(%{args: %{"resource_history_id" => resource_history_id, "b... method perform (line 23) | def perform(%{args: %{"resource_history_id" => resource_history_id}}) do method fetch_next (line 28) | def fetch_next(resource_history_id) do method update_resource_filesize (line 37) | def update_resource_filesize(resource_history_id) do method do_update (line 44) | def do_update(%{payload: %{"total_compressed_size" => total_compressed... method do_update (line 53) | def do_update(%{payload: %{"permanent_url" => url} = payload} = rh) do FILE: apps/transport/lib/jobs/backfill/backfill_resource_history_resource_id.ex class Transport.Jobs.Backfill.ResourceHistoryResourceId (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryResourceId method perform (line 8) | def perform(%{}) do method execute (line 45) | defp execute(query), do: query |> DB.Repo.query!() FILE: apps/transport/lib/jobs/backfill/backfill_resource_history_schema_details.ex class Transport.Jobs.Backfill.ResourceHistorySchemaDetails (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistorySchemaDetails method perform (line 9) | def perform(%{}) do method execute (line 32) | defp execute(query), do: query |> DB.Repo.query!() FILE: apps/transport/lib/jobs/backfill/remove_gtfs_rt_snapshots.ex class Transport.Jobs.Backfill.RemoveGTFSRTSnapshots (line 1) | defmodule Transport.Jobs.Backfill.RemoveGTFSRTSnapshots method perform (line 11) | def perform(%{}) do method count_relevant_files (line 16) | def count_relevant_files do method relevant_file_keys (line 20) | def relevant_file_keys do method multi_validation_gtfs_rt_filenames (line 34) | def multi_validation_gtfs_rt_filenames do FILE: apps/transport/lib/jobs/clean_multi_validation_job.ex class Transport.Jobs.CleanMultiValidationJob (line 1) | defmodule Transport.Jobs.CleanMultiValidationJob method perform (line 30) | def perform(%Oban.Job{args: %{"static" => true} = job_args}) do method perform (line 65) | def perform(%Oban.Job{args: %{"real_time" => true} = job_args}) do method max_records (line 93) | def max_records, do: Application.get_env(:transport, :clean_multi_vali... method archive_records (line 95) | defp archive_records(ids) do FILE: apps/transport/lib/jobs/clean_on_demand_validation_job.ex class Transport.Jobs.CleanOnDemandValidationJob (line 1) | defmodule Transport.Jobs.CleanOnDemandValidationJob method retention_days (line 13) | def retention_days, do: @days_before_archiving method perform (line 28) | def perform(%Oban.Job{args: %{"date" => date}}) do method days_to_archive (line 43) | def days_to_archive do method multi_validation_in_scope (line 54) | defp multi_validation_in_scope do FILE: apps/transport/lib/jobs/consolidate_bnlc_job.ex class Transport.Jobs.ConsolidateBNLCJob (line 1) | defmodule Transport.Jobs.ConsolidateBNLCJob method perform (line 55) | def perform(%Oban.Job{args: %{"action" => "delete_s3_file", "filename"... method perform (line 66) | def perform(%Oban.Job{id: job_id, args: %{"action" => "datagouv_update... method perform (line 78) | def perform(%Oban.Job{id: job_id}) do method consolidate (line 85) | def consolidate do method replace_file_on_datagouv (line 116) | def replace_file_on_datagouv do method validator_unavailable? (line 129) | defp validator_unavailable?(validation_errors) do method upload_temporary_file (line 135) | defp upload_temporary_file do method schedule_deletion (line 142) | defp schedule_deletion(filename) do method send_email_recap (line 152) | def send_email_recap(filename, %{} = errors) do method format_errors (line 172) | def format_errors(%{dataset_errors: _, validation_errors: _, download_... method format_dataset_errors (line 185) | def format_dataset_errors(%{dataset_errors: []}), do: "" method format_dataset_errors (line 187) | def format_dataset_errors(%{dataset_errors: dataset_errors}) do method format_validation_errors (line 204) | def format_validation_errors(%{validation_errors: []}), do: "" method format_validation_errors (line 206) | def format_validation_errors(%{validation_errors: validation_errors}) do method format_download_errors (line 214) | def format_download_errors(%{download_errors: []}), do: "" method format_download_errors (line 216) | def format_download_errors(%{download_errors: download_errors}) do method format_decode_errors (line 229) | def format_decode_errors(%{decode_errors: []}), do: "" method format_decode_errors (line 231) | def format_decode_errors(%{decode_errors: decode_errors}) do method link_to_dataset (line 247) | def link_to_dataset(%{"page" => page_url, "title" => title}) do method link_to_resource (line 261) | def link_to_resource({:error, dataset_details, resource}), do: link_to... method bnlc_csv_headers (line 269) | def bnlc_csv_headers do method final_csv_headers (line 289) | def final_csv_headers(bnlc_headers) do method consolidate_resources (line 303) | def consolidate_resources(resources_details) do method add_columns (line 351) | def add_columns(%Stream{} = stream, %{dataset: %{"id" => dataset_id}, ... method datagouv_dataset_slugs (line 367) | def datagouv_dataset_slugs do method guess_csv_separator (line 384) | def guess_csv_separator(body) do method guess_encoding (line 405) | def guess_encoding(path) do method can_stream_for_encoding? (line 410) | def can_stream_for_encoding?(path, encoding) do method extract_dataset_details (line 431) | def extract_dataset_details(slugs) do method get_dataset_details (line 439) | defp get_dataset_details(slug) do method valid_datagouv_resources (line 465) | def valid_datagouv_resources(datasets_details) do method download_resources (line 495) | def download_resources(resources_details) do method guess_csv_details_and_decode (line 515) | def guess_csv_details_and_decode({dataset_details, %{"id" => resource_... method check_can_decode_csv (line 532) | defp check_can_decode_csv( method with_appropriate_schema? (line 576) | def with_appropriate_schema?(%{}), do: false method xlsx? (line 587) | def xlsx?(%{"format" => "xlsx"}), do: true method xlsx? (line 588) | def xlsx?(%{"title" => title}), do: String.contains?(title |> String.d... method xlsx? (line 589) | def xlsx?(_), do: false method dataset_slug_to_url (line 595) | def dataset_slug_to_url(slug) do method http_client (line 599) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method consolidation_configuration (line 601) | defp consolidation_configuration do FILE: apps/transport/lib/jobs/consolidate_lez_job.ex class Transport.Jobs.ConsolidateLEZsJob (line 1) | defmodule Transport.Jobs.ConsolidateLEZsJob method perform (line 21) | def perform(%Oban.Job{id: job_id}) do method consolidate (line 27) | def consolidate do method update_files (line 37) | def update_files(consolidated_data) do method write_file (line 59) | def write_file(filepath, content) do method type (line 67) | def type(%Resource{dataset: %Dataset{type: @lez_dataset_type}} = resou... method voie? (line 85) | def voie?(%Resource{url: url, dataset: %Dataset{type: @lez_dataset_typ... method relevant_resources (line 89) | def relevant_resources do method consolidate_features (line 103) | def consolidate_features(resources) do method content_features (line 115) | defp content_features({%Resource{} = resource, %ResourceHistory{payloa... method latest_valid_resource_history (line 124) | defp latest_valid_resource_history(%Resource{id: resource_id}) do method add_publisher (line 136) | defp add_publisher(features, publisher_details) do method publisher_details (line 144) | def publisher_details(%Resource{dataset: %Dataset{} = dataset}) do method zfe_id (line 170) | def zfe_id(siren) do method pan_publisher (line 182) | def pan_publisher do method resource_id_for_type (line 186) | def resource_id_for_type(type) do method consolidation_configuration (line 190) | def consolidation_configuration do method http_client (line 218) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/jobs/conversions/clean_orphan_conversions_job.ex class Transport.Jobs.CleanOrphanConversionsJob (line 1) | defmodule Transport.Jobs.CleanOrphanConversionsJob method perform (line 13) | def perform(%Oban.Job{}) do method mark_for_deletion (line 34) | defp mark_for_deletion(ids) do method remove_rows (line 41) | defp remove_rows(ids) do method remove_s3_objects (line 45) | defp remove_s3_objects(paths) do FILE: apps/transport/lib/jobs/conversions/generic_converter.ex class Transport.Jobs.GenericConverter (line 1) | defmodule Transport.Jobs.GenericConverter method enqueue_all_conversion_jobs (line 11) | def enqueue_all_conversion_jobs(source_format, target_format, conversi... method resource_of_format? (line 53) | defp resource_of_format?(expected_format, %{payload: %{"format" => for... method resource_of_format? (line 54) | defp resource_of_format?(_, _), do: false method conversion_exists? (line 76) | def conversion_exists?(nil, _, _, _), do: false method conversion_file_name (line 189) | defp conversion_file_name(resource_name, source_format, target_format), method add_zip_extension (line 192) | defp add_zip_extension(path, true = _zip_conversion?), do: "#{path}.zip" method add_zip_extension (line 193) | defp add_zip_extension(path, _), do: path class Transport.FolderZipper (line 196) | defmodule Transport.FolderZipper method zip (line 200) | def zip(folder_path, zip_name) do FILE: apps/transport/lib/jobs/conversions/gtfs_generic_converter.ex class Transport.Jobs.GTFSGenericConverter (line 1) | defmodule Transport.Jobs.GTFSGenericConverter method enqueue_all_conversion_jobs (line 16) | def enqueue_all_conversion_jobs(format, conversion_job_module) do method perform_single_conversion_job (line 24) | def perform_single_conversion_job(resource_history_id, format, convert... FILE: apps/transport/lib/jobs/conversions/gtfs_to_geojson_converter_job.ex class Transport.Jobs.GTFSToGeoJSONConverterJob (line 1) | defmodule Transport.Jobs.GTFSToGeoJSONConverterJob method perform (line 9) | def perform(%{}) do class Transport.Jobs.SingleGTFSToGeoJSONConverterJob (line 14) | defmodule Transport.Jobs.SingleGTFSToGeoJSONConverterJob method perform (line 24) | def perform(%{args: %{"resource_history_id" => resource_history_id}}) do class Transport.GTFSToGeoJSONConverter (line 29) | defmodule Transport.GTFSToGeoJSONConverter method convert (line 35) | def convert(gtfs_file_path, geojson_file_path) do method converter (line 45) | def converter, do: "rust-transit/gtfs-to-geojson" method converter_version (line 48) | def converter_version, do: "0.3.1" FILE: apps/transport/lib/jobs/conversions/netex_generic_converter.ex class Transport.Jobs.NeTExGenericConverter (line 1) | defmodule Transport.Jobs.NeTExGenericConverter method enqueue_all_conversion_jobs (line 16) | def enqueue_all_conversion_jobs(format, conversion_job_module) do method perform_single_conversion_job (line 24) | def perform_single_conversion_job(resource_history_id, format, convert... FILE: apps/transport/lib/jobs/conversions/netex_to_geojson_converter_job.ex class Transport.Jobs.NeTExToGeoJSONConverterJob (line 1) | defmodule Transport.Jobs.NeTExToGeoJSONConverterJob method perform (line 9) | def perform(%{}) do class Transport.Jobs.SingleNeTExToGeoJSONConverterJob (line 14) | defmodule Transport.Jobs.SingleNeTExToGeoJSONConverterJob method perform (line 24) | def perform(%{args: %{"resource_history_id" => resource_history_id}}) do class Transport.NeTExToGeoJSONConverter (line 33) | defmodule Transport.NeTExToGeoJSONConverter method convert (line 39) | def convert(netex_file_path, geojson_file_path) do method converter (line 50) | def converter, do: "etalab/transport-site" method converter_version (line 53) | def converter_version, do: "0.1.0" FILE: apps/transport/lib/jobs/create_tokens_job.ex class Transport.Jobs.CreateTokensJob (line 1) | defmodule Transport.Jobs.CreateTokensJob method get_all_contact_ids_having_a_default_token (line 14) | def get_all_contact_ids_having_a_default_token do method get_all_contact_ids_in_org (line 19) | def get_all_contact_ids_in_org do method perform (line 30) | def perform(%Oban.Job{args: %{"action" => "create_token_for_contact", ... method perform (line 49) | def perform(%Oban.Job{args: %{"organization_id" => organization_id}}) do method perform (line 66) | def perform(%Oban.Job{args: %{"action" => "set_default_token_for_conta... method perform (line 82) | def perform(%Oban.Job{args: %{"action" => "create_tokens_for_contacts_... method perform (line 97) | def perform(%Oban.Job{args: %{"action" => "create_tokens_for_organizat... method create_default_token_for_contact (line 113) | defp create_default_token_for_contact(%DB.Contact{id: contact_id} = co... method set_default_token_for_contact (line 126) | defp set_default_token_for_contact(%DB.Contact{organizations: organiza... method create_token_for_organization (line 140) | defp create_token_for_organization(%DB.Contact{} = contact, %DB.Organi... method set_default_token_for_contact (line 149) | defp set_default_token_for_contact(%DB.Token{id: token_id}, %DB.Contac... FILE: apps/transport/lib/jobs/custom_logo_conversion_job.ex class Transport.Jobs.CustomLogoConversionJob (line 1) | defmodule Transport.Jobs.CustomLogoConversionJob method perform (line 10) | def perform(%Oban.Job{args: %{"datagouv_id" => datagouv_id, "path" => ... method stream_to_s3 (line 53) | defp stream_to_s3(local_path, remote_path) do FILE: apps/transport/lib/jobs/database_backup_replication_job.ex class Transport.Jobs.DatabaseBackupReplicationJob (line 1) | defmodule Transport.Jobs.DatabaseBackupReplicationJob method perform (line 18) | def perform(%Oban.Job{}) do method ensure_destination_permissions_are_appropriate! (line 28) | def ensure_destination_permissions_are_appropriate! do method upload! (line 41) | def upload!(dump) do method check_appropriate_size! (line 59) | def check_appropriate_size! do method latest_dump_for_date (line 71) | def latest_dump_for_date(latest_dumps, %Date{} = date) do method latest_dump (line 79) | def latest_dump, do: List.first(latest_source_dumps(1)) method bucket_name (line 87) | def bucket_name(target), do: Map.fetch!(find_config(target), :bucket_n... method hours_in_seconds (line 95) | def hours_in_seconds(hours), do: hours * 60 * 60 method check_dump_not_too_large! (line 107) | def check_dump_not_too_large!(dump) do method dump_size (line 115) | def dump_size(%{size: size_str}) do method check_dump_is_recent_enough! (line 120) | def check_dump_is_recent_enough!(%{last_modified: last_modified_str} =... method max_size_threshold (line 130) | def max_size_threshold, do: gigabytes(10) method recent_enough_threshold (line 131) | def recent_enough_threshold, do: hours_in_seconds(12) method upload_filename (line 133) | defp upload_filename(%{key: key}) do FILE: apps/transport/lib/jobs/database_vacuum_job.ex class Transport.Jobs.DatabaseVacuumJob (line 1) | defmodule Transport.Jobs.DatabaseVacuumJob method perform (line 10) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/dataset_history_job.ex class Transport.Jobs.DatasetHistoryDispatcherJob (line 1) | defmodule Transport.Jobs.DatasetHistoryDispatcherJob method perform (line 10) | def perform(_job) do class Transport.Jobs.DatasetHistoryJob (line 22) | defmodule Transport.Jobs.DatasetHistoryJob method perform (line 35) | def perform(%Oban.Job{args: %{"dataset_id" => dataset_id}}) do method get_preloaded_dataset (line 90) | def get_preloaded_dataset(dataset_id) do FILE: apps/transport/lib/jobs/dataset_now_on_nap_notification_job.ex class Transport.Jobs.DatasetNowOnNAPNotificationJob (line 1) | defmodule Transport.Jobs.DatasetNowOnNAPNotificationJob method perform (line 11) | def perform(%Oban.Job{args: %{"dataset_id" => dataset_id}, id: job_id}... method save_notification (line 31) | defp save_notification(%DB.Contact{id: contact_id, email: email}, %DB.... method reject_already_sent (line 41) | defp reject_already_sent(notification_subscriptions, %DB.Dataset{} = d... method email_addresses_already_sent (line 50) | defp email_addresses_already_sent(%DB.Dataset{id: dataset_id}) do FILE: apps/transport/lib/jobs/dataset_quality_score.ex class Transport.Jobs.DatasetQualityScoreDispatcher (line 1) | defmodule Transport.Jobs.DatasetQualityScoreDispatcher method perform (line 9) | def perform(%Oban.Job{}) do class Transport.Jobs.DatasetQualityScore (line 20) | defmodule Transport.Jobs.DatasetQualityScore method perform (line 30) | def perform(%Oban.Job{args: %{"dataset_id" => dataset_id}}) do method build_details (line 51) | def build_details(%{} = details, %{} = last_score) do method build_details (line 55) | def build_details(details, last_score), do: build_details(details || %... method exp_smoothing (line 68) | def exp_smoothing(previous_score, today_score, :compliance) do method exp_smoothing (line 76) | def exp_smoothing(previous_score, today_score, alpha) do method last_dataset_score (line 81) | def last_dataset_score(dataset_id, topic) do method average (line 109) | def average([]), do: nil method average (line 110) | def average(e), do: Enum.sum(e) / Enum.count(e) method dataset_resources (line 113) | def dataset_resources(dataset_id) do method save_dataset_score (line 122) | def save_dataset_score(dataset_id, topic) do method dataset_score (line 148) | def dataset_score(dataset_id, topic) do method compute_fn_for_topic (line 172) | def compute_fn_for_topic(topic) do class Transport.Jobs.DatasetComplianceScore (line 184) | defmodule Transport.Jobs.DatasetComplianceScore method current_dataset_compliance (line 218) | def current_dataset_compliance(dataset_id) do method resource_compliance (line 250) | def resource_compliance({resource_id, [%DB.MultiValidation{validator: ... method resource_compliance (line 255) | def resource_compliance( method resource_compliance (line 263) | def resource_compliance({resource_id, [%DB.MultiValidation{validator: ... method resource_compliance (line 280) | def resource_compliance({resource_id, [%DB.MultiValidation{digest: %{"... class Transport.Jobs.DatasetAvailabilityScore (line 286) | defmodule Transport.Jobs.DatasetAvailabilityScore method current_dataset_availability (line 304) | def current_dataset_availability(dataset_id) do method resource_availability (line 322) | def resource_availability(%DB.Resource{id: resource_id} = resource) do method resource_ids_with_unavailabilities (line 363) | def resource_ids_with_unavailabilities do class Transport.Jobs.DatasetFreshnessScore (line 380) | defmodule Transport.Jobs.DatasetFreshnessScore method current_dataset_freshness (line 401) | def current_dataset_freshness(dataset_id) do method resource_freshness (line 423) | def resource_freshness(%DB.Resource{format: "GTFS" = format, id: resou... method resource_freshness (line 458) | def resource_freshness(%DB.Resource{format: "gbfs" = format, id: resou... method resource_freshness (line 481) | def resource_freshness(%DB.Resource{format: "gtfs-rt" = format, id: re... method resource_freshness (line 504) | def resource_freshness(%DB.Resource{format: format, id: resource_id}), method gtfs_freshness (line 529) | def gtfs_freshness(start_date, end_date) do method gbfs_max_timestamp_delay (line 546) | def gbfs_max_timestamp_delay, do: 5 * 60 method gbfs_feed_freshness (line 556) | def gbfs_feed_freshness(feed_timestamp_delay) do method gtfs_rt_max_timestamp_delay (line 563) | def gtfs_rt_max_timestamp_delay, do: 5 * 60 method gtfs_rt_feed_freshness (line 573) | def gtfs_rt_feed_freshness(feed_timestamp_delay) do method resource_last_metadata_from_today (line 577) | def resource_last_metadata_from_today(resource_id) do FILE: apps/transport/lib/jobs/datasets_climate_resilience_bill_not_lo_licence_job.ex class Transport.Jobs.DatasetsClimateResilienceBillNotLOLicenceJob (line 1) | defmodule Transport.Jobs.DatasetsClimateResilienceBillNotLOLicenceJob method perform (line 11) | def perform(%Oban.Job{}) do method relevant_datasets (line 23) | def relevant_datasets do method remove_climate_resilience_bill_tag (line 30) | def remove_climate_resilience_bill_tag(datasets) do FILE: apps/transport/lib/jobs/datasets_switching_climate_resilience_bill_job.ex class Transport.Jobs.DatasetsSwitchingClimateResilienceBillJob (line 1) | defmodule Transport.Jobs.DatasetsSwitchingClimateResilienceBillJob method perform (line 12) | def perform(%Oban.Job{inserted_at: %DateTime{} = inserted_at}) do method send_email (line 21) | def send_email([], []), do: :ok method send_email (line 23) | def send_email(datasets_previously_climate_resilience, datasets_now_cl... method dataset_ids (line 49) | defp dataset_ids(payload) do method datasets_previously_climate_resilience_bill (line 53) | def datasets_previously_climate_resilience_bill(result) do method datasets_now_climate_resilience_bill (line 59) | def datasets_now_climate_resilience_bill(result) do method has_climate_resilience_bill_tag? (line 73) | def has_climate_resilience_bill_tag?(%DB.DatasetHistory{payload: %{"cu... method datasets_custom_tags_changes (line 77) | def datasets_custom_tags_changes(%Date{} = date) do FILE: apps/transport/lib/jobs/datasets_without_gtfs_rt_related_resources_notification_job.ex class Transport.Jobs.DatasetsWithoutGTFSRTRelatedResourcesNotificationJob (line 1) | defmodule Transport.Jobs.DatasetsWithoutGTFSRTRelatedResourcesNotificati... method perform (line 10) | def perform(%Oban.Job{}) do method send_email (line 14) | def send_email([]), do: :ok method send_email (line 16) | def send_email(datasets) do method relevant_datasets (line 31) | def relevant_datasets do FILE: apps/transport/lib/jobs/dedupe_history_job.ex class Transport.Jobs.DedupeHistoryDispatcherJob (line 1) | defmodule Transport.Jobs.DedupeHistoryDispatcherJob method perform (line 14) | def perform(%Oban.Job{}) do class Transport.Jobs.DedupeHistoryJob (line 29) | defmodule Transport.Jobs.DedupeHistoryJob method perform (line 39) | def perform(%Oban.Job{args: %{"datagouv_id" => datagouv_id}}) do method same? (line 58) | def same?(%ResourceHistory{payload: %{"content_hash" => a}}, %Resource... method same? (line 62) | def same?( method mark_for_deletion (line 69) | defp mark_for_deletion(ids) do method remove_resource_history_rows (line 76) | defp remove_resource_history_rows(ids) do method remove_s3_objects (line 80) | defp remove_s3_objects(paths) do method shas (line 84) | defp shas(%ResourceHistory{payload: %{"zip_metadata" => zip_metadata}}... FILE: apps/transport/lib/jobs/default_tokens_job.ex class Transport.Jobs.DefaultTokensJob (line 1) | defmodule Transport.Jobs.DefaultTokensJob method perform (line 13) | def perform(%Oban.Job{args: %{"contact_id" => contact_id, "organizatio... method perform (line 30) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/expiration_notification_job.ex class Transport.Jobs.ExpirationNotificationJob (line 1) | defmodule Transport.Jobs.ExpirationNotificationJob method perform (line 48) | def perform(%Oban.Job{ method send_admin_and_producer_notifications (line 94) | defp send_admin_and_producer_notifications(job_id) do method compute_producer_admin_expiration_data (line 103) | defp compute_producer_admin_expiration_data do method send_admin_mail (line 112) | defp send_admin_mail([] = records), do: records method send_admin_mail (line 114) | defp send_admin_mail(records) do method send_producer_notifications (line 122) | defp send_producer_notifications({delay, records}, job_id) do method dispatch_reuser_digest_jobs (line 140) | defp dispatch_reuser_digest_jobs(%Date{} = target_date) do method insert_reuser_digest_jobs (line 156) | defp insert_reuser_digest_jobs(contact_ids, %Date{} = target_date) do method send_reuser_email (line 171) | defp send_reuser_email(%DB.Contact{} = contact, html) do method save_reuser_notifications (line 176) | defp save_reuser_notifications(%DB.Contact{} = contact, delays_and_dat... method reuser_email_body (line 194) | defp reuser_email_body(records) do method datasets_body (line 201) | defp datasets_body({delay, datasets}) do method dataset_link (line 210) | defp dataset_link(%DB.Dataset{slug: slug, custom_title: custom_title}) do method subscribed_dataset_ids_for_expiration (line 219) | defp subscribed_dataset_ids_for_expiration(%DB.Contact{id: contact_id}... method contact_ids_subscribed_to_dataset_ids (line 229) | def contact_ids_subscribed_to_dataset_ids(dataset_ids) do method gtfs_expiring_on_target_dates (line 248) | def gtfs_expiring_on_target_dates(%Date{} = reference_date) do FILE: apps/transport/lib/jobs/gbfs_multi_validation_job.ex class Transport.Jobs.GBFSMultiValidationDispatcherJob (line 1) | defmodule Transport.Jobs.GBFSMultiValidationDispatcherJob method perform (line 10) | def perform(%Oban.Job{}) do method relevant_resources (line 18) | def relevant_resources do class Transport.Jobs.GBFSMultiValidationJob (line 26) | defmodule Transport.Jobs.GBFSMultiValidationJob method perform (line 34) | def perform(%Oban.Job{args: %{"resource_id" => resource_id}}) do FILE: apps/transport/lib/jobs/gbfs_operators_notification_job.ex class Transport.Jobs.GBFSOperatorsNotificationJob (line 1) | defmodule Transport.Jobs.GBFSOperatorsNotificationJob method perform (line 10) | def perform(%Oban.Job{}) do method relevant_feeds (line 14) | def relevant_feeds do method send_email (line 21) | def send_email([]), do: :ok method send_email (line 23) | def send_email(resources) do FILE: apps/transport/lib/jobs/geo_data/base.ex class Transport.Jobs.BaseGeoData (line 1) | defmodule Transport.Jobs.BaseGeoData method insert_data (line 14) | def insert_data(geo_data_import_id, prepare_data_for_insert_fn) do method insert_data (line 20) | def insert_data(body, geo_data_import_id, prepare_data_for_insert_fn) do method needs_import? (line 28) | defp needs_import?( method needs_import? (line 34) | defp needs_import?(_, nil), do: true method prepare_csv_data_for_import (line 103) | def prepare_csv_data_for_import(body, prepare_data_fn, opts \\ []) do method parse_coordinate (line 121) | def parse_coordinate(s) do method string_to_float (line 126) | defp string_to_float(s), do: s |> String.trim() |> String.replace([" "... FILE: apps/transport/lib/jobs/geo_data/bnlc_to_geo_data.ex class Transport.Jobs.BNLCToGeoData (line 1) | defmodule Transport.Jobs.BNLCToGeoData method perform (line 10) | def perform(%{}) do method prepare_data_for_insert (line 14) | def prepare_data_for_insert(body, geo_data_import_id) do FILE: apps/transport/lib/jobs/geo_data/gbfs_stations_to_geo_data.ex class Transport.Jobs.GBFSStationsToGeoData (line 1) | defmodule Transport.Jobs.GBFSStationsToGeoData method perform (line 15) | def perform(%Oban.Job{}) do method prepare_data_for_insert (line 19) | def prepare_data_for_insert(geo_data_import_id) do method prepare_stations_data (line 31) | def prepare_stations_data(gbfs_url, geo_data_import_id) do method virtual_station? (line 55) | defp virtual_station?(%{"is_virtual_station" => true}), do: true method virtual_station? (line 56) | defp virtual_station?(%{}), do: false method missing_coordinates? (line 58) | defp missing_coordinates?(%{"lat" => lat, "lon" => lon}) do method missing_coordinates? (line 62) | defp missing_coordinates?(%{}), do: true method station_name (line 68) | defp station_name(%{"name" => names}) do method relevant_gbfs_urls (line 77) | def relevant_gbfs_urls do method http_client (line 92) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/jobs/geo_data/irve_to_geo_data.ex class Transport.Jobs.IRVEToGeoData (line 1) | defmodule Transport.Jobs.IRVEToGeoData method perform (line 9) | def perform(%Oban.Job{}) do method prepare_data_for_insert (line 13) | def prepare_data_for_insert(body, geo_data_import_id) do FILE: apps/transport/lib/jobs/geo_data/lez_to_geo_data.ex class Transport.Jobs.LowEmissionZonesToGeoData (line 1) | defmodule Transport.Jobs.LowEmissionZonesToGeoData method perform (line 9) | def perform(%{}) do method prepare_data_for_insert (line 13) | def prepare_data_for_insert(body, geo_data_import_id) do method filter_dates (line 45) | def filter_dates(%{"properties" => properties}) do FILE: apps/transport/lib/jobs/gtfs_diff_job.ex class Transport.Jobs.GTFSDiff (line 1) | defmodule Transport.Jobs.GTFSDiff method perform (line 8) | def perform(%Oban.Job{args: args} = job) do method timeout (line 38) | def timeout(_job), do: :timer.seconds(job_timeout_sec()) method job_timeout_sec (line 41) | def job_timeout_sec, do: 30 * 60 method process_s3_objects (line 43) | defp process_s3_objects(job_id, gtfs_object_1, gtfs_object_2, args) do method process_urls (line 55) | defp process_urls(job_id, gtfs_url_1, gtfs_url_2, args) do method download_resource (line 70) | defp download_resource(url) do method mk_tmp_file (line 89) | defp mk_tmp_file do method unzip_local (line 93) | defp unzip_local(file) do method process_diff (line 97) | defp process_diff(job_id, unzip_1, unzip_2, %{ FILE: apps/transport/lib/jobs/gtfs_import_stops_job.ex class Transport.Jobs.GTFSImportStopsJob (line 1) | defmodule Transport.Jobs.GTFSImportStopsJob method perform (line 10) | def perform(%Oban.Job{} = job) do method refresh_all (line 24) | def refresh_all do method clean_up_stale_imports (line 61) | def clean_up_stale_imports do method active_up_to_date_datasets_resource_history_items (line 103) | def active_up_to_date_datasets_resource_history_items do method refresh (line 114) | def refresh(resource_history_items) do method safe_call (line 145) | def safe_call(cb, default) do FILE: apps/transport/lib/jobs/gtfs_multi_validation_job.ex class Transport.Jobs.GTFSValidationJob (line 1) | defmodule Transport.Jobs.GTFSValidationJob method perform (line 8) | def perform(%Oban.Job{args: args}) do FILE: apps/transport/lib/jobs/gtfs_rt_metadata.ex class Transport.Jobs.GTFSRTMetadataDispatcherJob (line 1) | defmodule Transport.Jobs.GTFSRTMetadataDispatcherJob method perform (line 14) | def perform(%Oban.Job{}) do method remove_old_metadata (line 24) | def remove_old_metadata do method relevant_resources (line 34) | def relevant_resources do class Transport.Jobs.GTFSRTMetadataJob (line 43) | defmodule Transport.Jobs.GTFSRTMetadataJob method perform (line 54) | def perform(%Oban.Job{args: %{"resource_id" => id}}) do method present_entities (line 74) | def present_entities(count_entities) do method process_feed (line 82) | def process_feed({:ok, %TransitRealtime.FeedMessage{} = feed}, %Resour... method process_feed (line 95) | def process_feed({:error, _}, %Resource{id: id}) do method days_to_keep (line 99) | def days_to_keep, do: 7 method datetime_limit (line 101) | def datetime_limit, do: DateTime.utc_now() |> DateTime.add(-days_to_ke... FILE: apps/transport/lib/jobs/gtfs_rt_multi_validation_job.ex class Transport.Jobs.GTFSRTMultiValidationDispatcherJob (line 1) | defmodule Transport.Jobs.GTFSRTMultiValidationDispatcherJob method perform (line 10) | def perform(%Oban.Job{}) do method relevant_datasets (line 23) | def relevant_datasets do class Transport.Jobs.GTFSRTMultiValidationJob (line 32) | defmodule Transport.Jobs.GTFSRTMultiValidationJob method perform (line 40) | def perform(%Oban.Job{args: %{"dataset_id" => dataset_id}}) do method perform (line 44) | def perform(%Oban.Job{args: %{"resource_id" => resource_id}}) do FILE: apps/transport/lib/jobs/gtfs_to_db.ex class Transport.Jobs.GtfsToDB (line 1) | defmodule Transport.Jobs.GtfsToDB method import_gtfs_from_resource_history (line 8) | def import_gtfs_from_resource_history(resource_history_id) do method import_gtfs_from_resource_history (line 19) | def import_gtfs_from_resource_history(resource_history_id, :stops_and_... method file_stream (line 26) | def file_stream(resource_history_id, gtfs_file_name) do method fill_stops_from_resource_history (line 32) | def fill_stops_from_resource_history(resource_history_id, data_import_... method stops_stream_insert (line 37) | def stops_stream_insert(file_stream, data_import_id) do method fill_calendar_from_resource_history (line 58) | def fill_calendar_from_resource_history(resource_history_id, data_impo... method calendar_stream_insert (line 63) | def calendar_stream_insert(file_stream, data_import_id) do method get_dow_array (line 97) | def get_dow_array([_monday, _tuesday, _wednesday, _thursday, _friday, ... method fill_stop_times_from_resource_history (line 104) | def fill_stop_times_from_resource_history(resource_history_id, data_im... method stop_times_stream_insert (line 109) | def stop_times_stream_insert(file_stream, data_import_id) do method cast_binary_to_interval (line 142) | def cast_binary_to_interval(s) do method fill_calendar_dates_from_resource_history (line 158) | def fill_calendar_dates_from_resource_history(resource_history_id, dat... method calendar_dates_stream_insert (line 163) | def calendar_dates_stream_insert(file_stream, data_import_id) do method fill_trips_from_resource_history (line 184) | def fill_trips_from_resource_history(resource_history_id, data_import_... method trips_stream_insert (line 189) | def trips_stream_insert(file_stream, data_import_id) do method fill_agency_from_resource_history (line 210) | def fill_agency_from_resource_history(resource_history_id, data_import... method agency_stream_insert (line 215) | def agency_stream_insert(file_stream, data_import_id) do FILE: apps/transport/lib/jobs/import_companies_job.ex class Transport.Jobs.ImportCompaniesJob (line 1) | defmodule Transport.Jobs.ImportCompaniesJob method perform (line 29) | def perform(%Oban.Job{args: %{"siren" => siren}}) do method sirens (line 44) | def sirens do method parse_date (line 53) | defp parse_date(nil), do: nil method parse_date (line 54) | defp parse_date(value), do: datetime_to_date(value) method parse_float (line 61) | defp parse_float(nil), do: nil method parse_float (line 62) | defp parse_float(value), do: String.to_float(value) method upsert! (line 64) | defp upsert!(siren, result) do FILE: apps/transport/lib/jobs/import_dataset_contact_points_job.ex class Transport.Jobs.ImportDatasetContactPointsJob (line 1) | defmodule Transport.Jobs.ImportDatasetContactPointsJob method perform (line 26) | def perform(%Oban.Job{}) do method dataset_datagouv_ids (line 37) | def dataset_datagouv_ids do method import_contact_point (line 41) | def import_contact_point(datagouv_id) do method guess_identity (line 70) | def guess_identity(name) do method update_contact_points (line 83) | defp update_contact_points(%DB.Dataset{id: dataset_id}, []) do method update_contact_points (line 92) | defp update_contact_points(%DB.Dataset{} = dataset, contact_points) do method update_contact_point (line 103) | defp update_contact_point(%DB.Dataset{} = _dataset, %{"email" => nil} ... method update_contact_point (line 107) | defp update_contact_point(%DB.Dataset{} = dataset, %{"email" => _, "na... method find_or_create_contact (line 113) | defp find_or_create_contact(%{"email" => email, "name" => name}) do method private_individual? (line 124) | defp private_individual?(nil), do: false method private_individual? (line 126) | defp private_individual?(name) do method guess_first_and_last_name (line 130) | defp guess_first_and_last_name(name) do method upcase? (line 145) | defp upcase?(value), do: value == String.upcase(value) FILE: apps/transport/lib/jobs/import_dataset_follower_reuser_improved_data_job.ex class Transport.Jobs.ImportDatasetFollowerReuserImprovedDataJob (line 1) | defmodule Transport.Jobs.ImportDatasetFollowerReuserImprovedDataJob method perform (line 10) | def perform(%Oban.Job{}) do method relevant_contacts (line 24) | def relevant_contacts do method relevant_dataset_ids (line 36) | def relevant_dataset_ids do FILE: apps/transport/lib/jobs/import_dataset_followers_job.ex class Transport.Jobs.ImportDatasetFollowersJob (line 1) | defmodule Transport.Jobs.ImportDatasetFollowersJob method perform (line 21) | def perform(%Oban.Job{}) do method delete_producers_following_their_datasets (line 35) | def delete_producers_following_their_datasets do method import_dataset_followers (line 46) | def import_dataset_followers(%DB.Dataset{id: dataset_id, datagouv_id: ... method contact_is_producer? (line 74) | def contact_is_producer?({_, %{organization_ids: contact_org_ids}}, %D... method contact_details (line 87) | def contact_details do FILE: apps/transport/lib/jobs/import_dataset_monthly_metrics_job.ex class Transport.Jobs.ImportDatasetMonthlyMetricsJob (line 1) | defmodule Transport.Jobs.ImportDatasetMonthlyMetricsJob method perform (line 18) | def perform(%Oban.Job{}) do method dataset_datagouv_ids (line 29) | def dataset_datagouv_ids do class Transport.Jobs.ImportMonthlyMetrics (line 34) | defmodule Transport.Jobs.ImportMonthlyMetrics method already_imported? (line 80) | def already_imported?(:dataset, datagouv_id) do method already_imported? (line 84) | def already_imported?(:resource, datagouv_id) do method on_conflict (line 112) | defp on_conflict(:dataset, _), do: [] method on_conflict (line 113) | defp on_conflict(:resource, %{"dataset_id" => dataset_datagouv_id}), d... method metrics_for_model (line 115) | defp metrics_for_model(:dataset, %{ method metrics_for_model (line 122) | defp metrics_for_model(:resource, %{"monthly_download_resource" => mon... method changeset (line 126) | defp changeset(:dataset, %{datagouv_id: dataset_datagouv_id} = params,... method changeset (line 131) | defp changeset(:resource, %{datagouv_id: resource_datagouv_id} = param... method api_args (line 140) | defp api_args(:dataset, datagouv_id: datagouv_id, page_size: page_size... method api_args (line 144) | defp api_args(:resource, datagouv_id: datagouv_id, page_size: page_siz... method http_client (line 152) | defp http_client, do: Transport.Req.impl() FILE: apps/transport/lib/jobs/import_gbfs_feed_contact_email_job.ex class Transport.Jobs.ImportGBFSFeedContactEmailJob (line 1) | defmodule Transport.Jobs.ImportGBFSFeedContactEmailJob method perform (line 21) | def perform(%Oban.Job{}) do method update_feed_contact_email (line 25) | def update_feed_contact_email( method find_or_create_contact (line 43) | defp find_or_create_contact(%{resource_url: resource_url, feed_contact... method contact_title (line 67) | def contact_title(resource_url) do method gbfs_feed_contact_emails (line 76) | def gbfs_feed_contact_emails do FILE: apps/transport/lib/jobs/import_resource_monthly_metrics_job.ex class Transport.Jobs.ImportResourceMonthlyMetricsJob (line 1) | defmodule Transport.Jobs.ImportResourceMonthlyMetricsJob method perform (line 18) | def perform(%Oban.Job{}) do method resource_datagouv_ids (line 29) | def resource_datagouv_ids do FILE: apps/transport/lib/jobs/import_reuses_job.ex class Transport.Jobs.ImportReusesJob (line 1) | defmodule Transport.Jobs.ImportReusesJob method perform (line 15) | def perform(%Oban.Job{}) do method truncate_reuses (line 24) | defp truncate_reuses, do: DB.Repo.delete_all(DB.Reuse) method import_all_reuses (line 26) | defp import_all_reuses do method orphan_reuse? (line 40) | defp orphan_reuse?(datasets, datagouv_ids) do method dataset_datagouv_ids (line 44) | defp dataset_datagouv_ids do method empty_optional_fields? (line 51) | defp empty_optional_fields?(attributes) do method http_client (line 58) | defp http_client, do: Transport.Req.impl() FILE: apps/transport/lib/jobs/irve_raw_consolidation_job.ex class Transport.Jobs.IRVERawConsolidationJob (line 1) | defmodule Transport.Jobs.IRVERawConsolidationJob method perform (line 9) | def perform(%Oban.Job{args: args}) do method build_filter (line 37) | def build_filter(nil = _limit), do: nil FILE: apps/transport/lib/jobs/irve_simple_consolidation_job.ex class Transport.Jobs.IRVESimpleConsolidationJob (line 1) | defmodule Transport.Jobs.IRVESimpleConsolidationJob method perform (line 10) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/multi_validation_with_error_notification_job.ex class Transport.Jobs.MultiValidationWithErrorNotificationJob (line 1) | defmodule Transport.Jobs.MultiValidationWithErrorNotificationJob method perform (line 53) | def perform(%Oban.Job{ method perform (line 73) | def perform(%Oban.Job{id: job_id, inserted_at: %DateTime{} = inserted_... method enqueue_next_job (line 81) | defp enqueue_next_job(validations, attempt) do method send_notifications_for_dataset (line 105) | def send_notifications_for_dataset({%DB.Dataset{} = dataset, multi_val... method send_to_reusers (line 130) | defp send_to_reusers(subscriptions, %DB.Dataset{} = dataset, method send_to_producers (line 148) | defp send_to_producers(subscriptions, %DB.Dataset{} = dataset, multi_v... method multi_validation_to_resource (line 165) | defp multi_validation_to_resource(%DB.MultiValidation{ method multi_validation_to_resource (line 170) | defp multi_validation_to_resource(%DB.MultiValidation{resource: %DB.Re... method send_mail (line 172) | defp send_mail( method save_notification (line 182) | defp save_notification(%DB.Dataset{} = dataset, %DB.NotificationSubscr... method save_notification (line 196) | defp save_notification(%DB.Dataset{} = dataset, %DB.NotificationSubscr... method relevant_validations (line 211) | def relevant_validations(%DateTime{} = inserted_at) do method relevant_static_validations (line 222) | defp relevant_static_validations(%DateTime{} = datetime_limit) do method relevant_realtime_validations (line 239) | defp relevant_realtime_validations(%DateTime{} = datetime_limit) do method relevant_realtime_validation? (line 254) | def relevant_realtime_validation?(%DB.MultiValidation{validator: @gtfs... method relevant_realtime_validation? (line 258) | def relevant_realtime_validation?(%DB.MultiValidation{}), do: true method subscriptions (line 260) | defp subscriptions(%DB.Dataset{} = dataset, role, validator_name) do method reject_already_sent (line 266) | defp reject_already_sent(notification_subscriptions, %DB.Dataset{} = d... method all_validators (line 274) | def all_validators, do: static_data_validators() ++ realtime_data_vali... method sending_delay_by_validator (line 285) | def sending_delay_by_validator(validator) do method email_addresses_already_sent (line 298) | def email_addresses_already_sent(%DB.Dataset{id: dataset_id}, validato... method static_data_validators (line 319) | def static_data_validators, method realtime_data_validators (line 322) | def realtime_data_validators, FILE: apps/transport/lib/jobs/netex_poller_job.ex class Transport.Jobs.NeTExPollerJob (line 1) | defmodule Transport.Jobs.NeTExPollerJob method backoff (line 25) | def backoff(%Oban.Job{} = job) do method perform (line 32) | def perform(%Oban.Job{ method perform (line 43) | def perform(%Oban.Job{ method proceed (line 53) | defp proceed(validation_id, resource_history_id, attempt, metadata) do method snooze_poller (line 60) | def snooze_poller(attempt) do FILE: apps/transport/lib/jobs/new_comments_notification_job.ex class Transport.Jobs.NewCommentsNotificationJob (line 1) | defmodule Transport.Jobs.NewCommentsNotificationJob method perform (line 17) | def perform(%Oban.Job{args: %{"contact_id" => contact_id, "dataset_ids... method perform (line 41) | def perform(%Oban.Job{scheduled_at: %DateTime{} = scheduled_at}) do method relevant_contacts (line 57) | def relevant_contacts(%DateTime{} = datetime) do method relevant_datasets_query (line 73) | def relevant_datasets_query(%DateTime{} = datetime) do method nb_days_delay (line 88) | def nb_days_delay(%Date{} = date) do FILE: apps/transport/lib/jobs/new_datagouv_datasets_job.ex class Transport.Jobs.NewDatagouvDatasetsJob (line 1) | defmodule Transport.Jobs.NewDatagouvDatasetsJob method perform (line 78) | def perform(%Oban.Job{args: %{"check_rules" => true}}) do method perform (line 93) | def perform(%Oban.Job{inserted_at: %DateTime{} = inserted_at}) do method rules (line 99) | def rules, do: @rules method filtered_datasets (line 101) | def filtered_datasets(datasets, %DateTime{} = inserted_at) do method starting_date (line 114) | def starting_date(%DateTime{} = inserted_at) do method window (line 126) | def window(%Date{} = inserted_at) do method ignore_dataset? (line 145) | def ignore_dataset?(%{"organization" => %{"id" => "5a83f81fc751df6f857... method ignore_dataset? (line 149) | def ignore_dataset?(%{}), do: false method dataset_is_relevant? (line 151) | def dataset_is_relevant?(%{} = dataset, rule) do method datagouv_datasets (line 166) | defp datagouv_datasets do method match_for_rules (line 176) | defp match_for_rules(datasets) do method send_emails (line 182) | defp send_emails([], %DateTime{}), do: :ok method send_emails (line 184) | defp send_emails(matches, inserted_at) do method rule_explanation (line 197) | def rule_explanation(%{schemas: schemas, tags: tags, formats: formats}... method title_is_relevant? (line 216) | defp title_is_relevant?(%{"title" => title}, rule), do: string_matches... method description_is_relevant? (line 217) | defp description_is_relevant?(%{"description" => description}, rule), ... method string_matches? (line 219) | defp string_matches?(nil, _rule), do: false method tags_is_relevant? (line 236) | defp tags_is_relevant?(%{"tags" => tags} = _dataset, rule) do method resource_is_relevant? (line 240) | defp resource_is_relevant?(%{} = resource, rule) do method resource_format_is_relevant? (line 248) | defp resource_format_is_relevant?(%{"format" => nil}, _rule), do: false method resource_format_is_relevant? (line 250) | defp resource_format_is_relevant?(%{"format" => format}, %{formats: fo... method resource_schema_is_relevant? (line 254) | defp resource_schema_is_relevant?(%{"schema" => %{"name" => schema_nam... method resource_schema_is_relevant? (line 258) | defp resource_schema_is_relevant?(%{}, _rule), do: false method normalize (line 272) | def normalize(value) do method normalize_grapheme (line 279) | defp normalize_grapheme(grapheme) do FILE: apps/transport/lib/jobs/new_dataset_notifications_job.ex class Transport.Jobs.NewDatasetNotificationsJob (line 1) | defmodule Transport.Jobs.NewDatasetNotificationsJob method perform (line 11) | def perform(%Oban.Job{id: job_id, inserted_at: %DateTime{} = inserted_... method relevant_datasets (line 16) | def relevant_datasets(%DateTime{} = inserted_at) do method send_new_dataset_notifications (line 25) | def send_new_dataset_notifications([], _job_id), do: :ok method send_new_dataset_notifications (line 27) | def send_new_dataset_notifications(datasets, job_id) do FILE: apps/transport/lib/jobs/notification_subscription_producer_job.ex class Transport.Jobs.NotificationSubscriptionProducerJob (line 1) | defmodule Transport.Jobs.NotificationSubscriptionProducerJob method perform (line 14) | def perform(%Oban.Job{}) do method create_producer_subscriptions (line 35) | defp create_producer_subscriptions(subscriptions) do method create_subscriptions (line 44) | defp create_subscriptions(%{contact_id: _, dataset_id: _} = attrs) do FILE: apps/transport/lib/jobs/oban_logger.ex class Transport.Jobs.ObanLogger (line 1) | defmodule Transport.Jobs.ObanLogger method email_on_failure_tag (line 21) | def email_on_failure_tag, do: @tag_email_on_failure method handle_event (line 23) | def handle_event( method setup (line 44) | def setup do FILE: apps/transport/lib/jobs/on_demand_netex_poller_job.ex class Transport.Jobs.OnDemandNeTExPollerJob (line 1) | defmodule Transport.Jobs.OnDemandNeTExPollerJob method backoff (line 28) | def backoff(%Oban.Job{} = job) do method perform (line 35) | def perform(%Oban.Job{args: %{"id" => multivalidation_id} = args, atte... method later (line 40) | def later(validation_id, multivalidation_id, metadata, url) do method check_result (line 48) | def check_result(%{"permanent_url" => url, "validation_id" => validati... method check_result (line 56) | def check_result(%{"permanent_url" => _, "validation_id" => _} = args,... method handle_error (line 60) | def handle_error(error_result) do method handle_success (line 66) | def handle_success(ok_result, url) do method handle_pending (line 72) | def handle_pending(attempt) do method build_successful_validation_result (line 78) | defp build_successful_validation_result(%{"validations" => validation,... method build_error_validation_result (line 93) | defp build_error_validation_result(%{message: msg}) do FILE: apps/transport/lib/jobs/on_demand_validation_helpers.ex class Transport.Jobs.OnDemandValidationHelpers (line 1) | defmodule Transport.Jobs.OnDemandValidationHelpers method terminal_state (line 8) | def terminal_state(result), do: {:terminal, result} method delegated_state (line 9) | def delegated_state, do: :delegated method snoozed_state (line 10) | def snoozed_state(duration_in_seconds), do: {:snooze, duration_in_seco... method completed (line 12) | def completed, do: %{"state" => "completed"} method error (line 14) | def error(error_message), do: %{"state" => "error", "error_reason" => ... method handle_validation_result (line 16) | def handle_validation_result(result, multivalidation_id) do method update_multivalidation (line 24) | defp update_multivalidation(multivalidation_id, changes) do FILE: apps/transport/lib/jobs/on_demand_validation_job.ex class Transport.Jobs.OnDemandValidationJob (line 1) | defmodule Transport.Jobs.OnDemandValidationJob method perform (line 23) | def perform(%Oban.Job{args: %{"id" => multivalidation_id, "state" => "... method perform_validation (line 38) | defp perform_validation(%{"type" => "gtfs", "permanent_url" => url}) do method perform_validation (line 62) | defp perform_validation(%{"type" => "gtfs-flex", "permanent_url" => ur... method perform_validation (line 81) | defp perform_validation(%{"type" => "netex", "id" => multivalidation_i... method perform_validation (line 94) | defp perform_validation(%{ method perform_validation (line 117) | defp perform_validation(%{ method perform_validation (line 146) | defp perform_validation(%{ method normalize_download (line 169) | defp normalize_download(result) do method remove_files (line 176) | defp remove_files(paths) do method process_download (line 181) | defp process_download([{:ok, gtfs_path}, {:ok, gtfs_rt_path}]) do method process_download (line 185) | defp process_download(results) do method run_save_gtfs_rt_validation (line 191) | defp run_save_gtfs_rt_validation(gtfs_path, gtfs_rt_path, opts \\ []) do method gtfs_rt_result_path (line 231) | def gtfs_rt_result_path(gtfs_rt_path) do method download_from_url (line 236) | defp download_from_url(url, path) do method get_request (line 254) | defp get_request(url) do FILE: apps/transport/lib/jobs/periodic_reminder_producers_notification_job.ex class Transport.Jobs.PeriodicReminderProducersNotificationJob (line 1) | defmodule Transport.Jobs.PeriodicReminderProducersNotificationJob method perform (line 37) | def perform(%Oban.Job{args: %{"contact_id" => contact_id}}) do method relevant_contacts (line 56) | defp relevant_contacts do method schedule_jobs (line 81) | defp schedule_jobs(contacts, %DateTime{} = scheduled_at) do method sent_mail_recently? (line 97) | def sent_mail_recently?(%DB.Contact{email: email}) do method send_mail_producer_without_subscriptions (line 105) | defp send_mail_producer_without_subscriptions(%DB.Contact{organization... method send_mail_producer_with_subscriptions (line 121) | defp send_mail_producer_with_subscriptions(%DB.Contact{} = contact) do method save_notification (line 135) | defp save_notification(%DB.Contact{id: contact_id, email: email}, temp... method datasets_subscribed_as_producer (line 146) | def datasets_subscribed_as_producer(%DB.Contact{notification_subscript... method subscribed_as_producer? (line 155) | def subscribed_as_producer?(%DB.Contact{notification_subscriptions: su... method other_producers_subscribers (line 160) | def other_producers_subscribers(%DB.Contact{id: contact_id} = contact) do method chunk_size (line 175) | def chunk_size do method first_monday_of_month (line 191) | def first_monday_of_month(%Date{} = date) do method next_weekday (line 211) | def next_weekday(%DateTime{} = datetime) do FILE: apps/transport/lib/jobs/promote_producer_space_job.ex class Transport.Jobs.PromoteProducerSpaceJob (line 1) | defmodule Transport.Jobs.PromoteProducerSpaceJob method perform (line 15) | def perform(%Oban.Job{args: %{"contact_id" => contact_id}}) do method save_notification (line 34) | defp save_notification(%DB.Contact{id: contact_id, email: email}) do method create_producer_subscriptions (line 43) | defp create_producer_subscriptions(%DB.Contact{id: contact_id}, datase... FILE: apps/transport/lib/jobs/promote_reuser_space_job.ex class Transport.Jobs.PromoteReuserSpaceJob (line 1) | defmodule Transport.Jobs.PromoteReuserSpaceJob method perform (line 9) | def perform(%Oban.Job{args: %{"contact_id" => contact_id}}) do method save_notification (line 19) | defp save_notification(%DB.Contact{id: contact_id, email: email}) do FILE: apps/transport/lib/jobs/refresh_autocomplete_job.ex class Transport.Jobs.RefreshAutocompleteJob (line 1) | defmodule Transport.Jobs.RefreshAutocompleteJob method perform (line 10) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/remove_history_job.ex class Transport.Jobs.RemoveHistoryJob (line 1) | defmodule Transport.Jobs.RemoveHistoryJob method perform (line 18) | def perform(%Oban.Job{args: %{"dataset_type" => dataset_type}}) do method perform (line 47) | def perform(%Oban.Job{args: %{"action" => "remove"} = args}) do method remove_objects_and_enqueue_job (line 95) | defp remove_objects_and_enqueue_job(objects, %{"action" => "remove"} =... method mark_for_deletion (line 103) | defp mark_for_deletion(ids) do method remove_resource_history_rows (line 110) | defp remove_resource_history_rows(ids) do method remove_s3_objects (line 114) | defp remove_s3_objects(paths) do FILE: apps/transport/lib/jobs/resource_history_job.ex class Transport.Jobs.ResourceHistoryAndValidationDispatcherJob (line 1) | defmodule Transport.Jobs.ResourceHistoryAndValidationDispatcherJob method perform (line 10) | def perform(%Oban.Job{args: %{"mode" => "reuser_improved_data"}}) do method perform (line 24) | def perform(_job) do method resources_to_historise (line 38) | def resources_to_historise(resource_id \\ nil) do class Transport.Jobs.ResourceHistoryJob (line 59) | defmodule Transport.Jobs.ResourceHistoryJob method perform (line 81) | def perform(%Oban.Job{args: %{"resource_id" => resource_id}} = job) do method perform (line 89) | def perform(%Oban.Job{args: %{"reuser_improved_data_id" => reuser_impr... method handle_history (line 94) | defp handle_history([], %Oban.Job{} = job) do method handle_history (line 100) | defp handle_history([%DB.Resource{} = resource], %Oban.Job{} = job) do method handle_history (line 104) | defp handle_history(%DB.ReuserImprovedData{} = reuser_improved_data, %... method do_handle_history (line 108) | defp do_handle_history(data, %Oban.Job{} = job) do method timeout (line 129) | def timeout(_job), do: :timer.minutes(2) method process_download (line 131) | defp process_download({:error, message}, %DB.Resource{id: resource_id}... method process_download (line 138) | defp process_download({:ok, resource_path, headers}, resource_or_impro... method should_store_resource? (line 195) | def should_store_resource?(_, []), do: false method should_store_resource? (line 196) | def should_store_resource?(_, nil), do: false method should_store_resource? (line 198) | def should_store_resource?(%DB.Resource{id: resource_id}, resource_has... method should_store_resource? (line 207) | def should_store_resource?(%DB.ReuserImprovedData{id: reuser_improved_... method compare_history (line 216) | defp compare_history(history, resource_hash) do method same_resource? (line 229) | def same_resource?(%DB.ResourceHistory{payload: %{"zip_metadata" => rh... method same_resource? (line 233) | def same_resource?(%DB.ResourceHistory{payload: %{"content_hash" => rh... method same_resource? (line 237) | def same_resource?(nil, _), do: false method set_of_sha256 (line 239) | def set_of_sha256(items) do method resource_hash (line 243) | defp resource_hash(data, resource_path) do method store_resource_history! (line 268) | defp store_resource_history!(%DB.Resource{} = resource, payload) do method store_resource_history! (line 288) | defp store_resource_history!(%DB.ReuserImprovedData{id: reuser_improve... method touch_resource_history! (line 297) | defp touch_resource_history!(%DB.ResourceHistory{id: id, resource_id: ... method download_path (line 303) | defp download_path(%DB.Resource{id: resource_id}) do method download_path (line 307) | defp download_path(%DB.ReuserImprovedData{id: reuser_improved_data_id}... method download_resource (line 311) | def download_resource(%DB.Resource{url: url}, file_path) do method download_resource (line 315) | def download_resource(%DB.ReuserImprovedData{download_url: download_ur... method http_client (line 336) | def http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method remove_file (line 338) | def remove_file(path), do: File.rm(path) method upload_filename (line 340) | def upload_filename(%DB.Resource{id: resource_id} = resource, resource... method upload_filename (line 346) | def upload_filename( method file_extension (line 359) | def file_extension(%DB.Resource{format: format}, resource_path) do method file_extension (line 367) | def file_extension(%DB.ReuserImprovedData{}, resource_path) do method relevant_http_headers (line 375) | def relevant_http_headers(%HTTPoison.Response{headers: headers}) do method relevant_http_headers (line 402) | def relevant_http_headers(%Req.Response{headers: headers}) do method cleanup_header (line 408) | defp cleanup_header("content-disposition", binary) do method cleanup_header (line 418) | defp cleanup_header(_header, binary), do: binary method latest_schema_version_to_date (line 420) | defp latest_schema_version_to_date(%DB.Resource{schema_name: nil}), do... method latest_schema_version_to_date (line 422) | defp latest_schema_version_to_date(%DB.Resource{schema_name: schema_na... method historize_and_validate_job (line 428) | def historize_and_validate_job(first_jobs_args, options \\ []) do FILE: apps/transport/lib/jobs/resource_history_jsonschema_validation_job.ex class Transport.Jobs.ResourceHistoryJSONSchemaValidationJob (line 1) | defmodule Transport.Jobs.ResourceHistoryJSONSchemaValidationJob method perform (line 22) | def perform(%Oban.Job{}) do method validator (line 26) | def validator, do: Transport.Validators.JSONSchema FILE: apps/transport/lib/jobs/resource_history_schema_validation.ex class Transport.Jobs.ResourceHistorySchemaValidation (line 1) | defmodule Transport.Jobs.ResourceHistorySchemaValidation method validate_resource_history_for_schema (line 11) | def validate_resource_history_for_schema(resource_history_id, validato... FILE: apps/transport/lib/jobs/resource_history_tableschema_validation_job.ex class Transport.Jobs.ResourceHistoryTableSchemaValidationJob (line 1) | defmodule Transport.Jobs.ResourceHistoryTableSchemaValidationJob method perform (line 22) | def perform(%Oban.Job{}) do method validator (line 26) | def validator, do: Transport.Validators.TableSchema FILE: apps/transport/lib/jobs/resource_history_validata_json_job.ex class Transport.Jobs.ResourceHistoryValidataJSONJob (line 1) | defmodule Transport.Jobs.ResourceHistoryValidataJSONJob method perform (line 25) | def perform(%Oban.Job{}) do method validator (line 29) | def validator, do: Transport.Validators.ValidataJson FILE: apps/transport/lib/jobs/resource_history_validation_job.ex class Transport.Jobs.ResourceHistoryValidationJob (line 1) | defmodule Transport.Jobs.ResourceHistoryValidationJob method perform (line 21) | def perform(%Oban.Job{args: %{"format" => format, "validator" => valid... method validate (line 90) | defp validate(%DB.ResourceHistory{} = resource_history, validator, for... method run_validation (line 94) | defp run_validation(%DB.ResourceHistory{} = resource_history, validato... FILE: apps/transport/lib/jobs/resource_unavailable_job.ex class Transport.Jobs.ResourcesUnavailableDispatcherJob (line 1) | defmodule Transport.Jobs.ResourcesUnavailableDispatcherJob method perform (line 11) | def perform(%Oban.Job{args: args}) do method resources_to_check (line 25) | def resources_to_check(false = _only_unavailable) do method resources_to_check (line 33) | def resources_to_check(true = _only_unavailable) do class Transport.Jobs.ResourceUnavailableJob (line 41) | defmodule Transport.Jobs.ResourceUnavailableJob method perform (line 53) | def perform(%Oban.Job{args: %{"resource_id" => resource_id}}) do method maybe_update_url (line 67) | defp maybe_update_url(%Resource{filetype: "file", url: url, latest_url... method maybe_update_url (line 78) | defp maybe_update_url(%Resource{} = resource), do: {:no_op, resource} method historize_resource (line 80) | defp historize_resource({:no_op, %Resource{}} = payload), do: payload method historize_resource (line 82) | defp historize_resource({:updated, %Resource{id: resource_id}} = paylo... method check_availability (line 91) | defp check_availability({:updated, %Resource{} = resource}) do method check_availability (line 95) | defp check_availability({:no_op, %Resource{id: resource_id, format: fo... method skip_resource_ids (line 108) | def skip_resource_ids do method update_resource (line 112) | defp update_resource({is_available, %Resource{} = resource}) do method create_or_update_resource_unavailability (line 117) | def create_or_update_resource_unavailability({false = _is_available, %... method create_or_update_resource_unavailability (line 130) | def create_or_update_resource_unavailability({true = _is_available, %R... method now (line 177) | defp now, do: DateTime.utc_now() |> DateTime.truncate(:second) method http_client (line 178) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method timeout (line 181) | def timeout(_job), do: :timer.seconds(30) FILE: apps/transport/lib/jobs/resource_unavailable_notification_job.ex class Transport.Jobs.ResourceUnavailableNotificationJob (line 1) | defmodule Transport.Jobs.ResourceUnavailableNotificationJob method perform (line 53) | def perform(%Oban.Job{ method perform (line 109) | def perform(%Oban.Job{id: job_id, inserted_at: %DateTime{} = inserted_... method enqueue_next_job (line 141) | defp enqueue_next_job(%DB.Dataset{id: dataset_id}, resources, hours_co... method send_to_reusers (line 154) | defp send_to_reusers(subscriptions, %DB.Dataset{} = dataset, unavailab... method send_to_producers (line 173) | defp send_to_producers(subscriptions, %DB.Dataset{} = dataset, unavail... method send_mail (line 191) | defp send_mail( method save_notification (line 199) | defp save_notification(%DB.NotificationSubscription{role: :reuser} = s... method save_notification (line 212) | defp save_notification(%DB.NotificationSubscription{role: :producer} =... method deleted_and_recreated_resource_hosted_on_datagouv (line 233) | def deleted_and_recreated_resource_hosted_on_datagouv(%DB.Dataset{}, [... method deleted_and_recreated_resource_hosted_on_datagouv (line 235) | def deleted_and_recreated_resource_hosted_on_datagouv(%DB.Dataset{} = ... method created_resource_hosted_on_datagouv_recently? (line 240) | def created_resource_hosted_on_datagouv_recently?(%DB.Dataset{datagouv... method parse_datetime (line 255) | defp parse_datetime(value) do method relevant_unavailabilities (line 260) | def relevant_unavailabilities(%DateTime{} = inserted_at) do method subscriptions (line 272) | defp subscriptions(%DB.Dataset{} = dataset, role) do method reject_already_sent (line 278) | defp reject_already_sent(notification_subscriptions, %DB.Dataset{} = d... method email_addresses_already_sent (line 286) | def email_addresses_already_sent(%DB.Dataset{id: dataset_id}) do method resource_id (line 296) | defp resource_id(%DB.Resource{id: id}), do: id method resource_id (line 297) | defp resource_id(%DB.ResourceUnavailability{resource: %DB.Resource{id:... method resource_title (line 299) | defp resource_title(%DB.Resource{title: title}), do: title method resource_title (line 300) | defp resource_title(%DB.ResourceUnavailability{resource: %DB.Resource{... FILE: apps/transport/lib/jobs/resource_validation_job.ex class Transport.Jobs.ResourceValidationJob (line 1) | defmodule Transport.Jobs.ResourceValidationJob FILE: apps/transport/lib/jobs/resources_changed_notification_job.ex class Transport.Jobs.ResourcesChangedNotificationJob (line 1) | defmodule Transport.Jobs.ResourcesChangedNotificationJob method perform (line 23) | def perform(%Oban.Job{id: job_id, args: %{"dataset_id" => dataset_id}}... method relevant_datasets (line 35) | def relevant_datasets do FILE: apps/transport/lib/jobs/stops_registry_snapshot_job.ex class Transport.Jobs.StopsRegistrySnapshotJob (line 1) | defmodule Transport.Jobs.StopsRegistrySnapshotJob method perform (line 10) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/table_size_history_job.ex class Transport.Jobs.TableSizeHistoryJob (line 1) | defmodule Transport.Jobs.TableSizeHistoryJob method perform (line 8) | def perform(%Oban.Job{}) do FILE: apps/transport/lib/jobs/update_contacts_job.ex class Transport.Jobs.UpdateContactsJob (line 1) | defmodule Transport.Jobs.UpdateContactsJob method perform (line 24) | def perform(%Oban.Job{args: %{"contact_ids" => ids}}) do method update_contact (line 31) | defp update_contact(%DB.Contact{datagouv_user_id: datagouv_user_id} = ... FILE: apps/transport/lib/jobs/update_counter_cache_job.ex class Transport.Jobs.UpdateCounterCacheJob (line 1) | defmodule Transport.Jobs.UpdateCounterCacheJob FILE: apps/transport/lib/jobs/visit_download_statistics_job.ex class Transport.Jobs.VisitDownloadStatisticsJob (line 1) | defmodule Transport.Jobs.VisitDownloadStatisticsJob method perform (line 12) | def perform(%Oban.Job{scheduled_at: %DateTime{} = scheduled_at}) do method relevant_contacts (line 24) | def relevant_contacts do FILE: apps/transport/lib/jobs/visit_proxy_statistics_job.ex class Transport.Jobs.VisitProxyStatisticsJob (line 1) | defmodule Transport.Jobs.VisitProxyStatisticsJob method perform (line 12) | def perform(%Oban.Job{scheduled_at: %DateTime{} = scheduled_at}) do method relevant_contacts (line 24) | def relevant_contacts do FILE: apps/transport/lib/jobs/visit_statistics_base.ex class Transport.Jobs.VisitStatisticsBase (line 1) | defmodule Transport.Jobs.VisitStatisticsBase method perform_job (line 24) | def perform_job( method relevant_contacts (line 45) | def relevant_contacts(resource_filter_fn) do method email_addresses_already_sent (line 58) | def email_addresses_already_sent(%DateTime{} = scheduled_at, notificat... method save_notification (line 71) | def save_notification(%DB.Contact{id: contact_id, email: email} = cont... FILE: apps/transport/lib/jobs/warn_user_inactivity_job.ex class Transport.Jobs.WarnUserInactivityJob (line 1) | defmodule Transport.Jobs.WarnUserInactivityJob method perform (line 11) | def perform(%Oban.Job{args: %{}}) do method inactivity_threshold (line 22) | defp inactivity_threshold(now), do: DateTime.add(now, -30 * 24, :day) method pruning_threshold (line 23) | defp pruning_threshold(now), do: DateTime.add(now, -30 * 25, :day) method warn_inactive_contact (line 25) | defp warn_inactive_contact(%DateTime{} = pruning_dt, %DB.Contact{} = c... method actually_warn_inactive_contact (line 37) | defp actually_warn_inactive_contact(%DB.Contact{} = contact, horizon) do method horizon_days (line 42) | def horizon_days, do: [30, 15, 1] method horizon_txt (line 48) | def horizon_txt(horizon) do method save_notification (line 52) | defp save_notification(%DB.Contact{} = contact, horizon) do method role (line 62) | defp role(%DB.Contact{} = contact) do FILE: apps/transport/lib/jobs/workflow.ex class Transport.Jobs.Workflow (line 1) | defmodule Transport.Jobs.Workflow method perform (line 58) | def perform( method execute_jobs (line 67) | defp execute_jobs([job], args, workflow_job) do method execute_jobs (line 72) | defp execute_jobs([job | tail], args, workflow_job) do method insert_job (line 111) | def insert_job(job_name, args, workflow_job) do method handle_event (line 164) | def handle_event( method handle_event (line 190) | def handle_event( method map_to_kw (line 211) | def map_to_kw(%{} = m) do method map_to_kw (line 216) | def map_to_kw(v), do: v method kw_to_map (line 231) | def kw_to_map([]), do: %{} method kw_to_map (line 237) | def kw_to_map([{_, _}] = kw) do method kw_to_map (line 241) | def kw_to_map([head | tail]) do class Notifier (line 117) | defmodule Notifier method impl (line 122) | def impl, do: Application.fetch_env!(:transport, :workflow_notifier) method notify_workflow (line 123) | def notify_workflow(job, args), do: impl().notify_workflow(job, args) class ObanNotifier (line 126) | defmodule ObanNotifier method notify_workflow (line 133) | def notify_workflow(%{meta: %{"workflow" => true}}, args) do method notify_workflow (line 137) | def notify_workflow(_job, _args), do: nil class ProcessNotifier (line 140) | defmodule ProcessNotifier method notify_workflow (line 149) | def notify_workflow(%{meta: %{"workflow" => true}}, args) do method notify_workflow (line 158) | def notify_workflow(_job, _args), do: nil FILE: apps/transport/lib/jobs/workflow_dummy_jobs.ex class Transport.Jobs.Dummy (line 1) | defmodule Transport.Jobs.Dummy class JobA (line 5) | defmodule JobA method perform (line 12) | def perform(%Oban.Job{args: %{"some_id" => some_id}} = job) do class JobB (line 26) | defmodule JobB method perform (line 33) | def perform(%Oban.Job{args: %{"some_id" => some_id}} = job) do class FailingJob (line 46) | defmodule FailingJob method perform (line 53) | def perform(%Oban.Job{args: %{"some_id" => some_id}} = job) do FILE: apps/transport/lib/mailer/admin_notifier.ex class Transport.AdminNotifier (line 1) | defmodule Transport.AdminNotifier method contact (line 8) | def contact(email, user_type, question_type, subject, question) do method feedback (line 14) | def feedback(rating, explanation, email, feature) do method bnlc_consolidation_report (line 29) | def bnlc_consolidation_report(subject, body, file_url) do method datasets_without_gtfs_rt_related_resources (line 35) | def datasets_without_gtfs_rt_related_resources(datasets) do method unknown_gbfs_operator_feeds (line 43) | def unknown_gbfs_operator_feeds(resources) do method datasets_climate_resilience_bill_inappropriate_licence (line 51) | def datasets_climate_resilience_bill_inappropriate_licence(datasets) do method new_datagouv_datasets (line 57) | def new_datagouv_datasets(category, datagouv_datasets, rule_explanatio... method expiration (line 67) | def expiration(records) do method inactive_datasets (line 73) | def inactive_datasets(reactivated_datasets, inactive_datasets, archive... method oban_failure (line 83) | def oban_failure(worker) do method notify_bizdev (line 91) | defp notify_bizdev do method notify_tech (line 100) | defp notify_tech do method notify_contact (line 107) | defp notify_contact(form_name, email) do method expiration_str (line 114) | defp expiration_str({delay, records}) do method expiration_notification_enabled_str (line 130) | def expiration_notification_enabled_str(%DB.Dataset{} = dataset) do method climate_resilience_str (line 138) | defp climate_resilience_str(%DB.Dataset{} = dataset) do method has_expiration_notifications? (line 146) | def has_expiration_notifications?(%DB.Dataset{} = dataset) do method fmt_inactive_datasets (line 152) | defp fmt_inactive_datasets([]), do: "" method fmt_inactive_datasets (line 154) | defp fmt_inactive_datasets(inactive_datasets) do method fmt_reactivated_datasets (line 163) | defp fmt_reactivated_datasets([]), do: "" method fmt_reactivated_datasets (line 165) | defp fmt_reactivated_datasets(reactivated_datasets) do method fmt_archived_datasets (line 174) | defp fmt_archived_datasets([]), do: "" method fmt_archived_datasets (line 176) | defp fmt_archived_datasets(archived_datasets) do method count_archived_datasets (line 187) | def count_archived_datasets do method backoffice_archived_datasets_url (line 191) | defp backoffice_archived_datasets_url do method link_and_name_from_datagouv_payload (line 196) | defp link_and_name_from_datagouv_payload(%{"title" => title, "page" =>... method link_and_name (line 202) | defp link_and_name(%DB.Dataset{slug: slug, custom_title: custom_title}... FILE: apps/transport/lib/mailer/mailer.ex class Transport.Mailer (line 1) | defmodule Transport.Mailer FILE: apps/transport/lib/mailer/user_notifier.ex class Transport.UserNotifier (line 1) | defmodule Transport.UserNotifier method resources_changed (line 8) | def resources_changed(%DB.Contact{} = contact, %DB.Dataset{} = dataset... method new_comments_reuser (line 15) | def new_comments_reuser(%DB.Contact{} = contact, datasets) do method new_comments_producer (line 22) | def new_comments_producer(%DB.Contact{} = contact, comments_number, co... method promote_reuser_space (line 29) | def promote_reuser_space(%DB.Contact{} = contact) do method dataset_now_on_nap (line 36) | def dataset_now_on_nap(%DB.Contact{} = contact, dataset) do method datasets_switching_climate_resilience_bill (line 47) | def datasets_switching_climate_resilience_bill( method multi_validation_with_error_notification (line 61) | def multi_validation_with_error_notification(%DB.Contact{} = contact, ... method multi_validation_with_error_notification (line 74) | def multi_validation_with_error_notification(%DB.Contact{} = contact, ... method resource_unavailable (line 87) | def resource_unavailable(%DB.Contact{} = contact, :producer, method resource_unavailable (line 107) | def resource_unavailable(%DB.Contact{} = contact, :reuser, method periodic_reminder_producers_no_subscriptions (line 127) | def periodic_reminder_producers_no_subscriptions(%DB.Contact{} = conta... method periodic_reminder_producers_with_subscriptions (line 134) | def periodic_reminder_producers_with_subscriptions( method new_datasets (line 149) | def new_datasets(%DB.Contact{} = contact, datasets) do method expiration_producer (line 156) | def expiration_producer(%DB.Contact{} = contact, dataset, resources, d... method expiration_reuser (line 167) | def expiration_reuser(%DB.Contact{} = contact, html) do method promote_producer_space (line 174) | def promote_producer_space(%DB.Contact{} = contact) do method warn_inactivity (line 183) | def warn_inactivity(%DB.Contact{email: email} = contact, horizon) do method visit_proxy_statistics (line 190) | def visit_proxy_statistics(%DB.Contact{} = contact) do method visit_download_statistics (line 197) | def visit_download_statistics(%DB.Contact{} = contact) do method common_email_options (line 206) | defp common_email_options(%DB.Contact{} = contact) do method resource_titles (line 220) | def resource_titles(resources) do FILE: apps/transport/lib/mix/tasks/dump_gtfs_rt.ex class Mix.Tasks.Decode.GtfsRt (line 1) | defmodule Mix.Tasks.Decode.GtfsRt method run (line 11) | def run([url]) do FILE: apps/transport/lib/mix/tasks/logs.ex class Mix.Tasks.Clever.Logs (line 1) | defmodule Mix.Tasks.Clever.Logs method fetch_log_page (line 32) | def fetch_log_page(app, end_time) do method default_start_time (line 62) | def default_start_time do method default_end_time (line 71) | def default_end_time, do: DateTime.utc_now() |> DateTime.to_iso8601() method prep_args (line 73) | def prep_args(args) do method build_next_end_time (line 102) | def build_next_end_time(logs) do method extract_log_page_and_update_state (line 114) | def extract_log_page_and_update_state(app, state) do method run (line 126) | def run(args) do FILE: apps/transport/lib/mix/tasks/npm.ex class Mix.Tasks.Npm (line 1) | defmodule Mix.Tasks.Npm method run (line 8) | def run([cmd | _tail]) do FILE: apps/transport/lib/mix/tasks/transport/add_dataset_subtypes.ex class Mix.Tasks.Transport.AddDatasetSubtypes (line 1) | defmodule Mix.Tasks.Transport.AddDatasetSubtypes method run (line 9) | def run(_params) do method insert! (line 25) | def insert!(parent_type, slug) do FILE: apps/transport/lib/mix/tasks/transport/add_monaco.ex class Mix.Tasks.Transport.AddMonaco (line 1) | defmodule Mix.Tasks.Transport.AddMonaco method run (line 12) | def run(_params) do method download_geojson (line 26) | defp download_geojson do method insert_monaco (line 31) | defp insert_monaco(geojson_data) do FILE: apps/transport/lib/mix/tasks/transport/add_switzerland.ex class Mix.Tasks.Transport.AddSwitzerland (line 1) | defmodule Mix.Tasks.Transport.AddSwitzerland method run (line 11) | def run(_params) do method download_geojson (line 25) | defp download_geojson do method insert_switzerland (line 30) | defp insert_switzerland(geojson_data) do FILE: apps/transport/lib/mix/tasks/transport/import_aoms.ex class Mix.Tasks.Transport.ImportAOMs (line 1) | defmodule Mix.Tasks.Transport.ImportAOMs method to_int (line 38) | def to_int(""), do: nil method to_int (line 39) | def to_int("#N/D"), do: nil method to_int (line 40) | def to_int("#ERROR!"), do: nil method to_int (line 42) | def to_int(str) do method changeset (line 51) | def changeset(line) do method normalize_region (line 79) | defp normalize_region("Grand-Est"), do: "Grand Est" method normalize_region (line 80) | defp normalize_region("Provence-Alpes-Côte-d'Azur"), do: "Région Sud —... method normalize_region (line 81) | defp normalize_region("Provence-Alpes-Côte d'Azur"), do: "Région Sud —... method normalize_region (line 82) | defp normalize_region("Nouvelle Aquitaine"), do: "Nouvelle-Aquitaine" method normalize_region (line 83) | defp normalize_region("Auvergne-Rhône Alpes"), do: "Auvergne-Rhône-Alpes" method normalize_region (line 84) | defp normalize_region("Nouvelle Calédonie"), do: "Nouvelle-Calédonie" method normalize_region (line 85) | defp normalize_region(region), do: region method normalize_forme (line 88) | defp normalize_forme("CA"), do: "Communauté d'agglomération" method normalize_forme (line 89) | defp normalize_forme("CU"), do: "Communauté urbaine" method normalize_forme (line 90) | defp normalize_forme("CC"), do: "Communauté de communes" method normalize_forme (line 91) | defp normalize_forme("METRO"), do: "Métropole" method normalize_forme (line 92) | defp normalize_forme("PETR"), do: "Pôle d'équilibre territorial et rural" method normalize_forme (line 93) | defp normalize_forme("POLEM"), do: "Pôle Métropolitain" method normalize_forme (line 94) | defp normalize_forme(f), do: f method normalize_nom (line 97) | defp normalize_nom("SIVOTU (nouvelle dénomination le 24/02/2010:AGGLOB... method normalize_nom (line 98) | defp normalize_nom("ILE D'YEU"), do: "L'Île-d'Yeu" method normalize_nom (line 99) | defp normalize_nom(n), do: n method extract_departement_insee (line 102) | defp extract_departement_insee("977 - Collectivité d’outre-mer de Nouv... method extract_departement_insee (line 103) | defp extract_departement_insee(insee_and_name), do: insee_and_name |> ... method run (line 105) | def run(_params) do method get_aom_to_import (line 144) | defp get_aom_to_import do method existing_or_new_aom (line 159) | defp existing_or_new_aom(line) do method import_aoms (line 171) | defp import_aoms(aoms_to_add) do method delete_old_aoms (line 176) | defp delete_old_aoms(aom_added, old_aoms) do method import_insee_aom (line 196) | defp import_insee_aom do method compute_geom (line 229) | defp compute_geom do method set_main_commune (line 256) | def set_main_commune do method migrate_datasets_to_new_aoms (line 293) | defp migrate_datasets_to_new_aoms do method disable_trigger (line 345) | defp disable_trigger do method enable_trigger (line 349) | defp enable_trigger do method display_changes (line 353) | defp display_changes(old_aoms, aoms_to_add) do FILE: apps/transport/lib/mix/tasks/transport/import_communes.ex class Mix.Tasks.Transport.ImportCommunes (line 1) | defmodule Mix.Tasks.Transport.ImportCommunes method regions_by_insee (line 20) | def regions_by_insee do method geojson_by_insee (line 25) | def geojson_by_insee do method load_etalab_communes (line 42) | def load_etalab_communes(region_insees) do method insert_or_update_commune (line 54) | def insert_or_update_commune( method insert_or_update_commune (line 91) | def insert_or_update_commune(%{"code" => "60694", "nom" => "Les Hauts-... method insert_or_update_commune (line 94) | def insert_or_update_commune(%{"code" => "85165", "nom" => "L'Oie"} = ... method insert_or_update_commune (line 97) | def insert_or_update_commune(%{"code" => "85212", "nom" => "Sainte-Flo... method insert_or_update_commune (line 100) | def insert_or_update_commune(%{"code" => "12218", "nom" => "Conques-en... method insert_or_update_commune (line 103) | def insert_or_update_commune(%{"code" => "14581", "nom" => "Aurseulles... method insert_or_update_commune (line 106) | def insert_or_update_commune(%{"code" => "15031", "nom" => "Celles"} =... method insert_or_update_commune (line 109) | def insert_or_update_commune(%{"code" => "15035", "nom" => "Chalinargu... method insert_or_update_commune (line 112) | def insert_or_update_commune(%{"nom" => "Chavagnac"} = params, regions... method insert_or_update_commune (line 115) | def insert_or_update_commune(%{"nom" => "Sainte-Anastasie"} = params, ... method insert_or_update_commune (line 118) | def insert_or_update_commune(%{"nom" => "Orée d'Anjou"} = params, regi... method insert_or_update_commune (line 121) | def insert_or_update_commune(%{"nom" => "Porte des Pierres Dorées"} = ... method get_or_create_commune (line 124) | defp get_or_create_commune(insee) do method build_geometry (line 136) | defp build_geometry(geojsons, insee) do method readable_changeset (line 143) | defp readable_changeset(%Ecto.Changeset{changes: changes, data: data}) do method run (line 149) | def run(_params) do method ensure_valid_geometries (line 188) | defp ensure_valid_geometries, method update_administrative_division (line 191) | def update_administrative_division do FILE: apps/transport/lib/mix/tasks/transport/import_departements.ex class Mix.Tasks.Transport.ImportDepartements (line 1) | defmodule Mix.Tasks.Transport.ImportDepartements method insert_or_update_departement (line 15) | def insert_or_update_departement( method geojson_by_insee (line 47) | defp geojson_by_insee do method get_or_create_departement (line 58) | defp get_or_create_departement(insee) do method build_geometry (line 70) | defp build_geometry(geojsons, insee) do method load_etalab_departements (line 77) | defp load_etalab_departements do method readable_changeset (line 85) | defp readable_changeset(%Ecto.Changeset{changes: changes, data: data}) do method run (line 91) | def run(_params) do method ensure_valid_geometries (line 122) | defp ensure_valid_geometries, FILE: apps/transport/lib/mix/tasks/transport/import_epci.ex class Mix.Tasks.Transport.ImportEPCI (line 1) | defmodule Mix.Tasks.Transport.ImportEPCI method run (line 15) | def run(_params) do method get_or_create_epci (line 43) | defp get_or_create_epci(code) do method insert_epci (line 56) | defp insert_epci(%{"code" => code, "nom" => nom, "type" => type, "mode... method check_communes_list (line 69) | defp check_communes_list(body) do method update_communes_epci (line 84) | defp update_communes_epci(%{"code" => code, "membres" => m}) do method get_insees (line 99) | defp get_insees(members) do method geojson_by_insee (line 104) | defp geojson_by_insee do method build_geometry (line 115) | defp build_geometry(geojsons, insee) do method ensure_valid_geometries (line 120) | defp ensure_valid_geometries, method normalize_type (line 124) | defp normalize_type("CA"), do: "Communauté d'agglomération" method normalize_type (line 125) | defp normalize_type("CU"), do: "Communauté urbaine" method normalize_type (line 126) | defp normalize_type("CC"), do: "Communauté de communes" method normalize_type (line 127) | defp normalize_type("METRO"), do: "Métropole" method normalize_type (line 128) | defp normalize_type("MET69"), do: "Métropole de Lyon" method normalize_mode_financement (line 131) | defp normalize_mode_financement("FPU"), do: "Fiscalité professionnelle... method normalize_mode_financement (line 132) | defp normalize_mode_financement("FA"), do: "Fiscalité additionnelle" method update_administrative_division (line 134) | def update_administrative_division do FILE: apps/transport/lib/mix/tasks/transport/import_offers.ex class Mix.Tasks.Transport.ImportOffers (line 1) | defmodule Mix.Tasks.Transport.ImportOffers method run (line 13) | def run(_params) do method import_offers (line 24) | defp import_offers do method truncate_offers (line 33) | defp truncate_offers, do: DB.Repo.delete_all(DB.Offer) FILE: apps/transport/lib/mix/tasks/transport/open_api_spec.ex class Mix.Tasks.Transport.OpenApiSpec (line 1) | defmodule Mix.Tasks.Transport.OpenApiSpec method run (line 7) | def run([output_file]) do FILE: apps/transport/lib/mix/tasks/transport/update_france_geojson.ex class Mix.Tasks.Transport.UpdateFranceGeoJSON (line 1) | defmodule Mix.Tasks.Transport.UpdateFranceGeoJSON method run (line 11) | def run(_params) do method download_geojson (line 22) | defp download_geojson do method update_france_geom (line 27) | defp update_france_geom(geojson_data) do FILE: apps/transport/lib/mix/tasks/url.ex class Mix.Tasks.Url (line 1) | defmodule Mix.Tasks.Url method run (line 14) | def run([url]) do method get_file_path (line 26) | def get_file_path(module_name) do method get_line_number (line 32) | def get_line_number(module, function_name) do FILE: apps/transport/lib/mix/tasks/yarn.ex class Mix.Tasks.Yarn (line 1) | defmodule Mix.Tasks.Yarn method run (line 8) | def run([cmd | _tail]) do FILE: apps/transport/lib/netex/archive_parser.ex class Transport.NeTEx.ArchiveParser (line 1) | defmodule Transport.NeTEx.ArchiveParser method read_stop_places (line 38) | def read_stop_places(%Unzip{} = unzip, file_name) do method read_stop_places! (line 45) | def read_stop_places!(%Unzip{} = unzip, file_name) do method read_all_stop_places (line 55) | def read_all_stop_places(zip_file_name) do method read_all_stop_places! (line 62) | def read_all_stop_places!(zip_file_name) do method read_service_calendars (line 72) | def read_service_calendars(%Unzip{} = unzip, file_name) do method read_service_calendars! (line 79) | def read_service_calendars!(%Unzip{} = unzip, file_name) do method read_all_service_calendars (line 83) | def read_all_service_calendars(zip_file_name) do method read_all_service_calendars! (line 87) | def read_all_service_calendars!(zip_file_name) do method read_calendars (line 97) | def read_calendars(%Unzip{} = unzip, file_name) do method read_calendars! (line 104) | def read_calendars!(%Unzip{} = unzip, file_name) do method read_all_calendars (line 108) | def read_all_calendars(zip_file_name) do method read_all_calendars! (line 112) | def read_all_calendars!(zip_file_name) do method read_types_of_frames (line 122) | def read_types_of_frames(%Unzip{} = unzip, file_name) do method read_types_of_frames! (line 129) | def read_types_of_frames!(%Unzip{} = unzip, file_name) do method read_all_types_of_frames (line 133) | def read_all_types_of_frames(zip_file_name) do method read_all_types_of_frames! (line 137) | def read_all_types_of_frames!(zip_file_name) do method read_description (line 147) | def read_description(%Unzip{} = unzip, file_name) do method read_description! (line 154) | def read_description!(%Unzip{} = unzip, file_name) do method read_all_description (line 158) | def read_all_description(zip_file_name) do method read_all_description! (line 162) | def read_all_description!(zip_file_name) do method parse_stream (line 166) | defp parse_stream(unzip, file_name, parser) do method parse_stream! (line 196) | defp parse_stream!(unzip, file_name, parser) do method read_all (line 203) | defp read_all(zip_file_name, reader) do method with_zip_file_handle (line 222) | def with_zip_file_handle(zip_file_name, cb, on_error) do FILE: apps/transport/lib/netex/calendars_streaming_parser.ex class Transport.NeTEx.CalendarsStreamingParser (line 1) | defmodule Transport.NeTEx.CalendarsStreamingParser method initial_state (line 10) | def initial_state do method unwrap_result (line 17) | def unwrap_result(final_state), do: final_state.calendars ++ final_sta... method handle_event (line 19) | def handle_event(:start_element, {element, attributes}, state) do method handle_event (line 37) | def handle_event(:end_element, "GeneralFrame", state) do method handle_event (line 45) | def handle_event(:end_element, _, state) do method handle_event (line 69) | def handle_event(_, _, state), do: {:ok, state} method init_calendar (line 71) | defp init_calendar(state, attrs \\ %{}), do: Map.put(state, :current_c... method update_calendar (line 73) | defp update_calendar(state, field, value) do method init_operating_period (line 77) | defp init_operating_period(state, attrs \\ %{}), do: Map.put(state, :c... method update_operating_period (line 79) | defp update_operating_period(state, field, value) do method register_calendar (line 83) | defp register_calendar(state) do method valid_calendar? (line 95) | defp valid_calendar?(%{id: id, start_date: %Date{}, end_date: %Date{}}... method valid_calendar? (line 99) | defp valid_calendar?(_), do: false method update_calendar_date (line 101) | defp update_calendar_date(state, field, chars) do method register_operating_period (line 105) | defp register_operating_period(state) do method valid_operating_period? (line 117) | defp valid_operating_period?(%{id: id, start_date: %Date{}, end_date: ... method valid_operating_period? (line 121) | defp valid_operating_period?(_), do: false method update_operating_period_date (line 123) | defp update_operating_period_date(state, field, chars) do FILE: apps/transport/lib/netex/chouette_valid_ruleset_generator.ex class Transport.NeTEx.ChouetteValidRulesetGenerator (line 1) | defmodule Transport.NeTEx.ChouetteValidRulesetGenerator method mandatory_attributes (line 14) | def mandatory_attributes(parent, names, documentation_title, documenta... method encode_ruleset (line 23) | def encode_ruleset(definition, device \\ :stdio) do method process_sub_profile (line 32) | def process_sub_profile(%{sub_profile: sub_profile, ruleset: ruleset}) do method document_ruleset (line 36) | def document_ruleset(ruleset, device \\ :stdio, markdown_options \\ []... method document_sub_profile (line 40) | def document_sub_profile(%{title: title, ruleset: ruleset}, device, op... method header (line 70) | defp header(_level, text), do: text method process_rule_context (line 72) | def process_rule_context(sub_profile, %{type: :mandatory_attributes, p... method process_mandatory_attribute_rule (line 80) | def process_mandatory_attribute_rule(sub_profile, parent, name) do method snake_case (line 106) | def snake_case(string), do: string method snake_case_ascii (line 116) | defp snake_case_ascii(<>, _), do: [char | snake_case... method snake_case_ascii (line 117) | defp snake_case_ascii(<<>>, _), do: [] FILE: apps/transport/lib/netex/description_parser.ex class Transport.NeTEx.DescriptionParser (line 1) | defmodule Transport.NeTEx.DescriptionParser method initial_state (line 26) | def initial_state do method unwrap_result (line 30) | def unwrap_result(final_state), method handle_event (line 43) | def handle_event(:end_element, "Network" = element, state) do method handle_event (line 47) | def handle_event(:end_element, "Line" = element, state) do method handle_event (line 51) | def handle_event(:end_element, "Quay" = element, state) do method handle_event (line 55) | def handle_event(:end_element, "StopPlace" = element, state) do method handle_event (line 59) | def handle_event(:end_element, element, state) do method handle_event (line 73) | def handle_event(_, _, state), do: {:ok, state} method end_element (line 75) | defp end_element(state, element) do method register_network (line 79) | defp register_network(state, network), do: update_in(state, [:networks... method register_transport_mode (line 81) | defp register_transport_mode(state, transport_mode), method increment (line 84) | defp increment(state, key), do: update_in(state, [key], &(&1 + 1)) method feature_detection (line 210) | defp feature_detection(state, element_name) do method has (line 221) | defp has(state, feature), do: update_in(state, [:features, feature], f... FILE: apps/transport/lib/netex/french_profile.ex class Transport.NeTEx.FrenchProfile (line 1) | defmodule Transport.NeTEx.FrenchProfile FILE: apps/transport/lib/netex/french_profile/v1.ex class Transport.NeTEx.FrenchProfile.V1 (line 1) | defmodule Transport.NeTEx.FrenchProfile.V1 method slug (line 14) | def slug, do: "pan:french_profile:1" method ruleset (line 16) | def ruleset(device \\ :stdio) do method markdown (line 20) | def markdown(device \\ :stdio, markdown_options \\ []) do method definition (line 24) | defp definition do method elements_communs (line 28) | def elements_communs do method arrets (line 79) | def arrets do method parkings (line 94) | def parkings do method description_reseaux (line 118) | def description_reseaux do method horaires (line 149) | def horaires do method accessibilite (line 165) | def accessibilite do method tarifs (line 181) | def tarifs do FILE: apps/transport/lib/netex/french_profile/v2.ex class Transport.NeTEx.FrenchProfile.V2 (line 1) | defmodule Transport.NeTEx.FrenchProfile.V2 method slug (line 16) | def slug, do: "pan:french_profile:2" method ruleset (line 18) | def ruleset(device \\ :stdio) do method markdown (line 22) | def markdown(device \\ :stdio, markdown_options \\ []) do method definition (line 26) | defp definition do method elements_communs (line 38) | def elements_communs do FILE: apps/transport/lib/netex/netex_helpers.ex class Transport.NeTEx.NeTExHelpers (line 1) | defmodule Transport.NeTEx.NeTExHelpers method parse_type_of_frame (line 38) | def parse_type_of_frame(type_of_frame) do method calendar_frame? (line 48) | def calendar_frame?(type_of_frame) do FILE: apps/transport/lib/netex/saxy_helpers.ex class Transport.NeTEx.SaxyHelpers (line 1) | defmodule Transport.NeTEx.SaxyHelpers method get_attribute! (line 6) | def get_attribute!(attributes, attr_name) do method parse_float! (line 13) | def parse_float!(binary) do method parse_date (line 18) | def parse_date(state, chars, cb) do method parse_date_utc (line 28) | defp parse_date_utc(state, chars, cb) do method capturing_initial_state (line 41) | def capturing_initial_state(initial_state) do method push (line 48) | def push(state, element), do: state |> update_in([:current_tree], &(&1... method pop (line 50) | def pop(state), do: update_in(state, [:current_tree], &(&1 |> List.del... method reset_tree (line 52) | def reset_tree(state), do: %{state | current_tree: []} method start_capture (line 54) | def start_capture(state), do: %{state | capture: true} method stop_capture (line 56) | def stop_capture(state), do: %{state | capture: false} FILE: apps/transport/lib/netex/service_calendars_streaming_parser.ex class Transport.NeTEx.ServiceCalendarsStreamingParser (line 1) | defmodule Transport.NeTEx.ServiceCalendarsStreamingParser method initial_state (line 10) | def initial_state do method unwrap_result (line 18) | def unwrap_result(final_state), do: final_state.service_calendars method handle_event (line 20) | def handle_event(:start_element, {element, attributes}, state) do method handle_event (line 39) | def handle_event(:end_element, node, state) do method handle_event (line 82) | def handle_event(:characters, _chars, state) do method handle_event (line 86) | def handle_event(_, _, state), do: {:ok, state} method init_service_calendar (line 88) | defp init_service_calendar(state, attrs), do: Map.put(state, :current_... method update_service_calendar (line 90) | defp update_service_calendar(state, field, value) do method register_service_calendar (line 94) | defp register_service_calendar(state) do method valid_service_calendar? (line 107) | defp valid_service_calendar?(%{id: id, name: name, start_date: %Date{}... method valid_service_calendar? (line 111) | defp valid_service_calendar?(_), do: false method update_date (line 113) | defp update_date(state, field, chars) do FILE: apps/transport/lib/netex/stop_places_streaming_parser.ex class Transport.NeTEx.StopPlacesStreamingParser (line 1) | defmodule Transport.NeTEx.StopPlacesStreamingParser method initial_state (line 28) | def initial_state do method unwrap_result (line 39) | def unwrap_result(final_state), do: final_state.stop_places method handle_event (line 42) | def handle_event(:start_element, {"StopPlace" = element, attributes}, ... method handle_event (line 58) | def handle_event(:end_element, "StopPlace" = _node, state) do method handle_event (line 63) | def handle_event(:end_element, _node, state) do method handle_event (line 81) | def handle_event(_, _, state), do: {:ok, state} FILE: apps/transport/lib/netex/to_geojson/coordinates.ex class Transport.NeTEx.ToGeoJSON.Coordinates (line 1) | defmodule Transport.NeTEx.ToGeoJSON.Coordinates method parse_coordinate_pairs_lon_lat (line 100) | defp parse_coordinate_pairs_lon_lat(pairs) do method parse_lon_lat_pair (line 109) | defp parse_lon_lat_pair(pair) do method parse_coordinate_pairs (line 122) | defp parse_coordinate_pairs(values) do method parse_float (line 140) | defp parse_float(string) do FILE: apps/transport/lib/netex/to_geojson/geojson_builder.ex class Transport.NeTEx.ToGeoJSON.GeoJSONBuilder (line 1) | defmodule Transport.NeTEx.ToGeoJSON.GeoJSONBuilder method point_feature (line 43) | def point_feature(coordinates, properties, id \\ nil) method line_string_feature (line 77) | def line_string_feature(coordinates, properties, id \\ nil) method stop_to_feature (line 125) | def stop_to_feature(_stop), do: nil method service_link_to_feature (line 159) | def service_link_to_feature(_link), do: nil method maybe_add_id (line 161) | defp maybe_add_id(feature, nil), do: feature method maybe_add_id (line 162) | defp maybe_add_id(feature, id), do: Map.put(feature, "id", id) method maybe_put (line 164) | defp maybe_put(map, _key, nil), do: map method maybe_put (line 165) | defp maybe_put(map, key, value), do: Map.put(map, key, value) FILE: apps/transport/lib/netex/to_geojson/parsers/quay_parser.ex class Transport.NeTEx.ToGeoJSON.QuayParser (line 1) | defmodule Transport.NeTEx.ToGeoJSON.QuayParser method parse_stream (line 44) | def parse_stream(stream) do method handle_event (line 64) | def handle_event(:start_element, {"Quay" = element, attributes}, state... method handle_event (line 77) | def handle_event(:start_element, {element, _attributes}, %{capture: tr... method handle_event (line 82) | def handle_event(:end_element, "Quay", state) do method handle_event (line 94) | def handle_event(:end_element, _element, %{capture: true} = state) do method handle_event (line 99) | def handle_event(:characters, chars, %{current_tree: ["Quay", "Name"]}... method handle_event (line 104) | def handle_event(:characters, chars, %{current_tree: ["Quay", "PublicC... method handle_event (line 109) | def handle_event( method handle_event (line 118) | def handle_event( method handle_event (line 127) | def handle_event(_, _, state), do: {:ok, state} method get_attribute (line 129) | defp get_attribute(attributes, name) do method parse_float! (line 136) | defp parse_float!(binary) do FILE: apps/transport/lib/netex/to_geojson/parsers/service_link_parser.ex class Transport.NeTEx.ToGeoJSON.ServiceLinkParser (line 1) | defmodule Transport.NeTEx.ToGeoJSON.ServiceLinkParser method parse_stream (line 41) | def parse_stream(stream) do method initial_state (line 54) | defp initial_state do method handle_event (line 67) | def handle_event(:start_element, {"ServiceLink" = element, attributes}... method handle_event (line 81) | def handle_event(:start_element, {element, attributes}, %{capture: tru... method handle_event (line 103) | def handle_event(:end_element, "ServiceLink", state) do method handle_event (line 129) | def handle_event(:end_element, "Name", %{current_tree: ["ServiceLink",... method handle_event (line 135) | def handle_event(:end_element, _element, %{capture: true} = state) do method handle_event (line 140) | def handle_event(:characters, chars, %{capture: true} = state) do method handle_event (line 145) | def handle_event(_, _, state), do: {:ok, state} method process_pos_list (line 147) | defp process_pos_list(state) do method process_gml_coordinates (line 157) | defp process_gml_coordinates(state) do method get_attribute (line 167) | defp get_attribute(attributes, name) do FILE: apps/transport/lib/netex/to_geojson/to_geojson.ex class Transport.NeTEx.ToGeoJSON (line 1) | defmodule Transport.NeTEx.ToGeoJSON method convert_archive (line 50) | def convert_archive(zip_path, opts \\ []) do method convert_xml (line 82) | def convert_xml(xml, opts \\ []) do method extract_features_from_entry (line 91) | defp extract_features_from_entry(unzip, file_name, types) do method extract_features_from_stream (line 113) | defp extract_features_from_stream(stream, types) do method extract_features_from_xml (line 119) | defp extract_features_from_xml(xml, types) do method extract_stop_places (line 146) | defp extract_stop_places(xml) do method extract_quays (line 169) | defp extract_quays(xml) do method extract_service_links (line 181) | defp extract_service_links(xml) do FILE: apps/transport/lib/netex/types_of_frame_streaming_parser.ex class Transport.NeTEx.TypesOfFrameStreamingParser (line 1) | defmodule Transport.NeTEx.TypesOfFrameStreamingParser method initial_state (line 11) | def initial_state do method unwrap_result (line 17) | def unwrap_result(final_state), do: final_state.types_of_frames method handle_event (line 19) | def handle_event(:start_element, {"TypeOfFrameRef", attributes}, state... method handle_event (line 25) | def handle_event(_, _, state), do: {:ok, state} method register_type_of_frame (line 27) | defp register_type_of_frame(state, ref) do FILE: apps/transport/lib/registry/engine.ex class Transport.Registry.Engine (line 1) | defmodule Transport.Registry.Engine method execute (line 22) | def execute(output_file, opts \\ []) do method create_empty_csv_with_headers (line 39) | def create_empty_csv_with_headers(output_file) do method enumerate_gtfs_resources (line 44) | def enumerate_gtfs_resources(limit, formats) do method prepare_extractor (line 53) | def prepare_extractor(%DB.Resource{} = resource) do method download (line 63) | def download({extractor, data_source_id, url}) do method extract_from_archive (line 98) | def extract_from_archive({extractor, data_source_id, file}) do method dump_to_csv (line 103) | def dump_to_csv(enumerable, output_file) do FILE: apps/transport/lib/registry/extractor.ex class Transport.Registry.Extractor (line 1) | defmodule Transport.Registry.Extractor FILE: apps/transport/lib/registry/gtfs.ex class Transport.Registry.GTFS (line 1) | defmodule Transport.Registry.GTFS method extract_from_archive (line 18) | def extract_from_archive(data_source_id, archive) do method handle_stop (line 44) | defp handle_stop(data_source_id, record) do method to_stop_type (line 66) | defp to_stop_type("0"), do: :quay method to_stop_type (line 67) | defp to_stop_type("1"), do: :stop method to_stop_type (line 68) | defp to_stop_type(_), do: :other method file_stream (line 70) | defp file_stream(archive) do method has_stops? (line 89) | defp has_stops?(unzip) do method entry_of_name? (line 95) | defp entry_of_name?(name, %Unzip.Entry{file_name: file_name}) do FILE: apps/transport/lib/registry/model/data_source.ex class Transport.Registry.Model.DataSource (line 1) | defmodule Transport.Registry.Model.DataSource FILE: apps/transport/lib/registry/model/stop.ex class Transport.Registry.Model.StopIdentifier (line 1) | defmodule Transport.Registry.Model.StopIdentifier method main (line 18) | def main(id), do: %__MODULE__{type: :main, id: id} method to_field (line 28) | def to_field(%__MODULE__{id: id, type: type}) do class Transport.Registry.Model.Stop (line 33) | defmodule Transport.Registry.Model.Stop method csv_headers (line 72) | def csv_headers do method to_csv (line 86) | def to_csv(%__MODULE__{} = stop) do method maybe (line 101) | def maybe(nil, _, defaultValue), do: defaultValue method maybe (line 102) | def maybe(value, mapper, _), do: mapper.(value) FILE: apps/transport/lib/registry/netex.ex class Transport.Registry.NeTEx (line 1) | defmodule Transport.Registry.NeTEx method extract_from_archive (line 17) | def extract_from_archive(data_source_id, archive) do method process_stop_places (line 24) | defp process_stop_places(data_source_id, {_filename, {:ok, stop_places... method process_stop_places (line 28) | defp process_stop_places(_data_source_id, {filename, {:error, message}... method to_stop (line 33) | defp to_stop(data_source_id, %{id: id, name: name, latitude: latitude,... method to_stop (line 45) | defp to_stop(_data_source_id, incomplete_record) do FILE: apps/transport/lib/registry/result.ex class Transport.Registry.Result (line 1) | defmodule Transport.Registry.Result method ok (line 9) | def ok(positive), do: {:ok, positive} method error (line 11) | def error(message), do: {:error, message} method cat_results (line 18) | def cat_results(enumerable), do: Stream.flat_map(enumerable, &keep_ok/1) method keep_ok (line 20) | defp keep_ok({:ok, result}), do: [result] method keep_ok (line 21) | defp keep_ok(_), do: [] method map_result (line 28) | def map_result(enumerable, mapper) do FILE: apps/transport/lib/siri_queries.ex class Transport.SIRI (line 4) | defmodule Transport.SIRI method prolog (line 21) | def prolog do method request_extension (line 25) | def request_extension, do: empty_element("RequestExtension", []) method check_status (line 27) | def check_status(timestamp, requestor_ref, message_identifier) do method lines_discovery (line 45) | def lines_discovery(timestamp, requestor_ref, message_identifier) do method stop_points_discovery (line 63) | def stop_points_discovery(timestamp, requestor_ref, message_identifier... method line_refs_element (line 81) | def line_refs_element([] = _line_refs), do: nil method line_refs_element (line 83) | def line_refs_element(line_refs) do method append_if_not_nil (line 95) | def append_if_not_nil(list, nil), do: list method append_if_not_nil (line 96) | def append_if_not_nil(list, item), do: list ++ [item] method get_estimated_timetable (line 98) | def get_estimated_timetable(timestamp, requestor_ref, message_identifi... method get_stop_monitoring (line 125) | def get_stop_monitoring(timestamp, requestor_ref, message_identifier, ... method get_general_message (line 153) | def get_general_message(timestamp, requestor_ref, message_identifier) do FILE: apps/transport/lib/siri_query_generator.ex class Transport.SIRIQueryGenerator (line 9) | defmodule Transport.SIRIQueryGenerator class Transport.SIRIQueryGenerator.Behaviour (line 1) | defmodule Transport.SIRIQueryGenerator.Behaviour method impl (line 13) | def impl, do: Application.get_env(:transport, :siri_query_generator_im... method generate_query (line 23) | def generate_query(params) do FILE: apps/transport/lib/support/logger/translator.ex class Support.Logger.Translator (line 1) | defmodule Support.Logger.Translator method translate (line 6) | def translate(_min_level, :error, :format, _message) do method translate (line 10) | def translate(_min_level, :error, :report, {:supervisor_report, _data}... method translate (line 14) | def translate(_min_level, _level, _kind, _message) do FILE: apps/transport/lib/support/pretty_json_encoder.ex class TransportWeb.PrettyJSONEncoder (line 1) | defmodule TransportWeb.PrettyJSONEncoder method encode_to_iodata! (line 7) | def encode_to_iodata!(data) do FILE: apps/transport/lib/support/proxy.ex class Transport.Proxy (line 1) | defmodule Transport.Proxy method base_url (line 5) | def base_url(conn) do method resource_url (line 12) | def resource_url(base_url, slug) do FILE: apps/transport/lib/transport.ex class Transport (line 1) | defmodule Transport FILE: apps/transport/lib/transport/application.ex class Transport.Application (line 1) | defmodule Transport.Application method cache_name (line 17) | def cache_name, do: @cache_name method start (line 19) | def start(_type, _args) do method boot_mode_label (line 70) | defp boot_mode_label do method webserver_enabled? (line 78) | def webserver_enabled?, do: Application.fetch_env!(:transport, :webser... method worker_enabled? (line 79) | def worker_enabled?, do: Application.fetch_env!(:transport, :worker) method worker_only? (line 80) | def worker_only?, do: worker_enabled?() && !webserver_enabled?() method webserver_only? (line 81) | def webserver_only?, do: webserver_enabled?() && !worker_enabled?() method dual_mode? (line 82) | def dual_mode?, do: worker_enabled?() && webserver_enabled?() method run_explore_vehicle_positions_poller? (line 84) | def run_explore_vehicle_positions_poller?, method preemptive_caching? (line 87) | def preemptive_caching?, method add_if (line 90) | defp add_if(children, condition, child) do method add_quantum_scheduler (line 98) | defp add_quantum_scheduler(children) do method enforce_ttl? (line 106) | defp enforce_ttl?, do: Application.fetch_env!(:transport, :unlock_enfo... method config_change (line 108) | def config_change(changed, _new, removed) do FILE: apps/transport/lib/transport/appsignal_ecto_telemetry.ex class Transport.AppSignal.EctoTelemetry (line 1) | defmodule Transport.AppSignal.EctoTelemetry method handle_event (line 31) | def handle_event([:db, :repo, :query], measurements, _metadata, _confi... method setup (line 67) | def setup do FILE: apps/transport/lib/transport/availability_checker.ex class Transport.AvailabilityChecker (line 21) | defmodule Transport.AvailabilityChecker class Transport.AvailabilityChecker.Wrapper (line 1) | defmodule Transport.AvailabilityChecker.Wrapper method impl (line 7) | def impl, do: Application.get_env(:transport, :availability_checker_... method available? (line 8) | def available?(resource_format, url), do: impl().available?(resource... class Transport.AvailabilityChecker.Dummy (line 11) | defmodule Transport.AvailabilityChecker.Dummy method available? (line 18) | def available?(_, _), do: true method available? (line 32) | def available?(format, target, use_http_streaming \\ false) method available? (line 88) | def available?(_format, url, true = _use_http_streaming) do method http_client (line 95) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/transport/cache.ex class Transport.Cache (line 1) | defmodule Transport.Cache method fetch (line 7) | def fetch(cache_key, comp_fn, expire_value \\ :timer.seconds(60)), do:... method put (line 11) | def put(cache_key, value, expire_value \\ :timer.seconds(60)), do: imp... method delete (line 15) | def delete(cache_key), do: impl().delete(cache_key) method impl (line 17) | defp impl, do: Application.get_env(:transport, :cache_impl) class Transport.Cache.Cachex (line 20) | defmodule Transport.Cache.Cachex method fetch (line 41) | def fetch(cache_key, value_fn, expire_value \\ :timer.seconds(60)) do method put (line 92) | def put(cache_key, value, expire_value \\ :timer.seconds(60)) do method delete (line 101) | def delete(cache_key), do: Cachex.del(cache_name(), cache_key) method cache_name (line 103) | def cache_name, do: Transport.Application.cache_name() class Transport.Cache.Null (line 106) | defmodule Transport.Cache.Null method fetch (line 112) | def fetch(_cache_key, value_fn, _expire_value), do: value_fn.() method put (line 114) | def put(_cache_key, _value, _expire_value), do: {:ok, true} method delete (line 116) | def delete(_cache_key), do: {:ok, true} FILE: apps/transport/lib/transport/cached_files.ex class Transport.CachedFiles (line 1) | defmodule Transport.CachedFiles method start_link (line 11) | def start_link(_params) do method facilitators (line 16) | def facilitators do method zfe_ids (line 21) | def zfe_ids do method gbfs_operators (line 26) | def gbfs_operators do method static_irve_schema (line 30) | def static_irve_schema do method dynamic_irve_schema (line 34) | def dynamic_irve_schema do method load_documents (line 39) | defp load_documents do method read_csv (line 50) | defp read_csv(filename) do method read_json (line 62) | def read_json(filename) do FILE: apps/transport/lib/transport/comments_checker.ex class Transport.CommentsChecker (line 1) | defmodule Transport.CommentsChecker method check_for_new_comments (line 20) | def check_for_new_comments do method fetch_new_comments (line 29) | def fetch_new_comments do method relevant_datasets (line 45) | def relevant_datasets do method count_comments (line 52) | def count_comments(comments_with_context) do method handle_new_comments (line 58) | def handle_new_comments(0 = _comments_number, _comments) do method handle_new_comments (line 62) | def handle_new_comments(comments_number, comments) do method save_notification (line 79) | def save_notification(comments_with_context, %DB.NotificationSubscript... method update_all_datasets_ts (line 89) | def update_all_datasets_ts(comments_with_context) do method update_dataset_ts (line 105) | def update_dataset_ts(dataset, timestamp) do method get_dataset_title (line 118) | defp get_dataset_title(datagouv_id) do method comment_timestamp (line 125) | def comment_timestamp(comment) do method comments_latest_timestamp (line 135) | def comments_latest_timestamp(nil), do: nil method comments_latest_timestamp (line 136) | def comments_latest_timestamp([]), do: nil method latest_datetime (line 148) | defp latest_datetime(%DateTime{} = date1, %DateTime{} = date2) do method comments_posted_after (line 152) | def comments_posted_after(discussions, nil) do method comments_posted_after (line 156) | def comments_posted_after(discussions, timestamp) do method add_discussion_id_to_comments (line 162) | def add_discussion_id_to_comments(discussions) do FILE: apps/transport/lib/transport/community_resource_cleaner.ex class Transport.CommunityResourcesCleaner (line 1) | defmodule Transport.CommunityResourcesCleaner method transport_publisher_label (line 16) | def transport_publisher_label do method clean_community_resources (line 20) | def clean_community_resources do method delete_resources (line 40) | def delete_resources(resources) do method list_orphan_community_resources (line 50) | def list_orphan_community_resources do method list_orphan_community_resources (line 57) | def list_orphan_community_resources(dataset) do method delete_transport_community_resources (line 82) | def delete_transport_community_resources do method list_transport_community_resources (line 99) | def list_transport_community_resources do method list_transport_community_resources (line 106) | def list_transport_community_resources(dataset) do FILE: apps/transport/lib/transport/companies.ex class Transport.Companies (line 1) | defmodule Transport.Companies method by_siren_or_siret (line 19) | def by_siren_or_siret(siren_or_siret) do method by_siren (line 31) | def by_siren(siren) do method search (line 54) | def search(%{} = params) do method build_url (line 80) | def build_url(%{} = uri_params) do method siret_to_siren (line 120) | def siret_to_siren(siret), do: String.slice(siret, 0..8) method http_client (line 122) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/transport/consolidated_dataset.ex class Transport.ConsolidatedDataset (line 1) | defmodule Transport.ConsolidatedDataset method geo_data_datasets (line 16) | def geo_data_datasets do method resource (line 32) | def resource(name) do method additional_ecto_query (line 41) | defp additional_ecto_query(query, :zfe) do method additional_ecto_query (line 46) | defp additional_ecto_query(q, _), do: q method filter_official_resources (line 50) | defp filter_official_resources(resources, :bnlc) do method filter_official_resources (line 54) | defp filter_official_resources(resources, :irve) do method filter_official_resources (line 59) | defp filter_official_resources(resources, :zfe) do method publisher_id (line 63) | defp publisher_id(:datagouvfr) do method publisher_id (line 67) | defp publisher_id(:transport) do method bnlc_resource_id (line 71) | defp bnlc_resource_id do method irve_resource_id (line 76) | defp irve_resource_id do FILE: apps/transport/lib/transport/counter_cache.ex class Transport.CounterCache (line 1) | defmodule Transport.CounterCache method cache_modes_features_on_resources (line 13) | def cache_modes_features_on_resources do method resources_with_metadata (line 22) | defp resources_with_metadata do method prepare_update_values (line 29) | defp prepare_update_values(query) do method apply_all_updates! (line 52) | defp apply_all_updates!(updates) do FILE: apps/transport/lib/transport/custom_search_message.ex class Transport.CustomSearchMessage (line 1) | defmodule Transport.CustomSearchMessage method get_messages (line 15) | def get_messages, do: @messages method get_message (line 21) | def get_message(query_params, locale) do method filter_messages (line 26) | def filter_messages(messages, query_params, locale) do method message_matches_query? (line 44) | def message_matches_query?(query_params, %{"search_params" => message_... FILE: apps/transport/lib/transport/data_checker.ex class Transport.DataChecker (line 1) | defmodule Transport.DataChecker method inactive_data (line 18) | def inactive_data do method datasets_datagouv_statuses (line 63) | def datasets_datagouv_statuses do method dataset_status (line 71) | def dataset_status(%DB.Dataset{datagouv_id: datagouv_id}) do method log_sentry_event (line 96) | defp log_sentry_event(datagouv_id, error) do method send_inactive_datasets_mail (line 105) | defp send_inactive_datasets_mail([] = _reactivated_datasets, [] = _ina... method send_inactive_datasets_mail (line 108) | defp send_inactive_datasets_mail(reactivated_datasets, inactive_datase... FILE: apps/transport/lib/transport/dataset_checks.ex class Transport.DatasetChecks (line 1) | defmodule Transport.DatasetChecks method check (line 38) | def check(%DB.Dataset{} = dataset, mode) do method issue_name (line 67) | def issue_name(:unavailable_resource), do: dgettext("espace-producteur... method issue_name (line 68) | def issue_name(:expiring_resource), do: dgettext("espace-producteurs",... method issue_name (line 69) | def issue_name(:invalid_resource), do: dgettext("espace-producteurs", ... method issue_name (line 70) | def issue_name(:unanswered_discussions), do: dgettext("espace-producte... method issue_name (line 71) | def issue_name(:recent_discussions), do: dgettext("espace-producteurs"... method has_issues? (line 74) | def has_issues?(result), do: count_issues(result) >= 1 method count_issues (line 77) | def count_issues(result) do method unavailable_resource (line 82) | def unavailable_resource(%DB.Dataset{resources: resources}) do method invalid_resource (line 87) | def invalid_resource(%DB.Dataset{} = dataset, validations) do method expiring_resource (line 109) | def expiring_resource(%DB.Dataset{} = dataset, validations) do method unanswered_discussions (line 121) | def unanswered_discussions(%DB.Dataset{} = dataset) do method recent_discussions (line 131) | def recent_discussions(%DB.Dataset{} = dataset) do method closed_discussion? (line 136) | def closed_discussion?(%{"closed" => closed}), do: not is_nil(closed) method discussion_since (line 138) | def discussion_since(%{"discussion" => comment_list}, since_days) do method answered_by_team_member (line 151) | def answered_by_team_member(%{"discussion" => comment_list}, team_memb... method team_member_ids (line 156) | defp team_member_ids(%DB.Dataset{organization_id: organization_id}) do method keep_validations (line 166) | defp keep_validations(%DB.Dataset{} = dataset, validations) do FILE: apps/transport/lib/transport/dataset_index.ex class Transport.DatasetIndex (line 1) | defmodule Transport.DatasetIndex method start_link (line 18) | def start_link(_opts) do method get (line 23) | def get do method init (line 28) | def init(state) do method handle_info (line 34) | def handle_info(:tick, _state) do method handle_call (line 41) | def handle_call(:get, _from, state) do method handle_call (line 46) | def handle_call(:refresh, _from, _state) do method refresh (line 55) | def refresh do method schedule_refresh (line 59) | defp schedule_refresh(delay \\ @refresh_interval) do method subtypes (line 77) | def subtypes(index, dataset_ids, parent_type) do method types (line 98) | def types(index, dataset_ids) do method licences (line 112) | def licences(index, dataset_ids) do method realtime_count (line 126) | def realtime_count(index, dataset_ids) do method resource_format_count (line 142) | def resource_format_count(index, dataset_ids) do method regions (line 162) | def regions(index, dataset_ids) do method filter_dataset_ids (line 186) | def filter_dataset_ids(index, params) do method match_param? (line 201) | defp match_param?("type", entry, type), do: entry.type == type method match_param? (line 202) | defp match_param?("subtype", entry, subtype), do: subtype in entry.sub... method match_param? (line 204) | defp match_param?("licence", entry, "licence-ouverte"), do: entry.lice... method match_param? (line 205) | defp match_param?("licence", entry, licence), do: entry.licence == lic... method match_param? (line 207) | defp match_param?("filter", entry, "has_realtime"), do: entry.has_real... method match_param? (line 208) | defp match_param?("filter", _entry, _other), do: true method match_param? (line 210) | defp match_param?("format", entry, format), do: format in entry.formats method match_param? (line 211) | defp match_param?("region", entry, region), do: entry.region_insee == ... method match_param? (line 212) | defp match_param?("custom_tag", entry, tag), do: tag in entry.custom_tags method match_param? (line 213) | defp match_param?("organization_id", entry, org_id), do: to_string(ent... method match_param? (line 216) | defp match_param?("modes", entry, modes), do: Enum.all?(modes, &(&1 in... method match_param? (line 218) | defp match_param?("identifiant_offre", entry, id) do method order_dataset_ids (line 234) | def order_dataset_ids(dataset_ids, index, %{"order_by" => "alpha"}) do method order_dataset_ids (line 238) | def order_dataset_ids(dataset_ids, index, %{"order_by" => "most_recent... method order_dataset_ids (line 251) | def order_dataset_ids(dataset_ids, _index, %{"q" => _q}), do: dataset_ids method order_dataset_ids (line 253) | def order_dataset_ids(dataset_ids, index, _params) do method default_sort_key (line 259) | defp default_sort_key(entry, pan_publisher) do method build_index (line 276) | def build_index do method build_entry (line 288) | defp build_entry(dataset, region_mapping) do method extract_modes (line 311) | defp extract_modes(%DB.Dataset{} = dataset) do method all_regions (line 320) | defp all_regions do method entries_for (line 326) | defp entries_for(index, dataset_ids) do method normalize_licence (line 330) | defp normalize_licence(licence) do method build_region_mapping (line 335) | defp build_region_mapping do FILE: apps/transport/lib/transport/expiration.ex class Transport.Expiration (line 1) | defmodule Transport.Expiration method reuser_delays (line 30) | def reuser_delays, do: @reuser_delays method producer_admin_delays (line 40) | def producer_admin_delays, do: @producer_admin_delays |> Enum.uniq() |... method delays_and_dates (line 50) | def delays_and_dates(%Date{} = date, delays) do method delay_str (line 72) | def delay_str(0, verb), do: "#{verb} demain" method delay_str (line 73) | def delay_str(1, verb), do: "#{verb} dans 1 jour" method delay_str (line 75) | def delay_str(-1, :périmant), do: "périmé depuis hier" method delay_str (line 76) | def delay_str(-1, :périment), do: "sont périmées depuis hier" method delay_str (line 92) | def delay_str(delay), do: delay_str(delay, :périmant) method public_transit_with_expiration_metadata_query (line 101) | def public_transit_with_expiration_metadata_query do method datasets_expiring_by_delay (line 119) | def datasets_expiring_by_delay(%Date{} = reference_date, delays) do method datasets_with_resources_expiring_on (line 146) | def datasets_with_resources_expiring_on(%Date{} = date) do FILE: apps/transport/lib/transport/explore_vehicle_positions_poller.ex class Transport.ExploreVehiclePositionsPoller (line 1) | defmodule Transport.ExploreVehiclePositionsPoller method init (line 17) | def init(state) do method start_link (line 25) | def start_link(_opts) do method schedule_next_tick (line 29) | def schedule_next_tick(delay \\ @tick_frequency) do method relevant_resources (line 34) | def relevant_resources do method handle_info (line 43) | def handle_info(:tick, state) do method viewers (line 55) | def viewers do method viewers_count (line 61) | def viewers_count do method process (line 68) | def process do method broadcast (line 101) | def broadcast(payload) do method fetch_vehicle_positions_safely (line 106) | def fetch_vehicle_positions_safely(resource_id, url) do FILE: apps/transport/lib/transport/file_downloads.ex class Transport.FileDownloads (line 1) | defmodule Transport.FileDownloads method guess_filename (line 19) | def guess_filename(headers, url), do: extract_from_headers(headers) ||... method extract_from_headers (line 51) | def extract_from_headers(headers), do: headers |> Enum.into(%{}) |> ex... method extract_from_url (line 63) | def extract_from_url(%URI{path: path}) do FILE: apps/transport/lib/transport/gbfs_metadata.ex class Transport.GBFSMetadata (line 12) | defmodule Transport.GBFSMetadata class Transport.GBFSMetadata.Wrapper (line 1) | defmodule Transport.GBFSMetadata.Wrapper method compute_feed_metadata (line 7) | def compute_feed_metadata(url), do: impl().compute_feed_metadata(url) method impl (line 9) | def impl, do: Application.get_env(:transport, :gbfs_metadata_impl) method compute_feed_metadata (line 43) | def compute_feed_metadata(url) do method validation (line 70) | defp validation(url) do method operator (line 85) | def operator(url) do method types (line 92) | def types(%{"data" => _data} = payload) do method has_stations? (line 112) | defp has_stations?(%{"data" => _data} = payload) do method has_free_floating_vehicles? (line 126) | defp has_free_floating_vehicles?(%{"data" => _data} = payload) do method virtual_station_ids (line 142) | def virtual_station_ids(%{"data" => _data} = payload) do method ttl (line 156) | defp ttl(%{"data" => _data} = payload) do method feed_timestamp_delay (line 211) | def feed_timestamp_delay(_), do: nil method feed_to_use_for_ttl (line 224) | def feed_to_use_for_ttl(types) do method stats (line 233) | def stats(%{"data" => _data} = payload) do method station_status_statistics (line 240) | def station_status_statistics(%{"data" => _data} = payload) do method station_information_statistics (line 268) | def station_information_statistics(%{"data" => _data} = payload) do method vehicle_statistics (line 289) | def vehicle_statistics(%{"data" => _data} = payload) do method unrealistic_station_data? (line 327) | def unrealistic_station_data?(%{} = data) do method vehicles_available (line 335) | defp vehicles_available(%{"num_vehicles_available" => num_vehicles_ava... method vehicles_available (line 337) | defp vehicles_available(%{"num_bikes_available" => num_bikes_available... method system_details (line 339) | def system_details(%{"data" => _data} = payload) do method transform_localized_strings (line 364) | def transform_localized_strings(json) do method localized_string? (line 379) | defp localized_string?(_), do: false method vehicle_types (line 381) | def vehicle_types(%{"data" => _data} = payload) do method languages (line 398) | def languages(%{"data" => data} = payload) do method versions (line 414) | def versions(%{"data" => _data} = payload) do method main_feeds (line 435) | def main_feeds(%{"data" => data} = payload) do method feed_url_by_name (line 445) | def feed_url_by_name(%{"data" => _} = payload, name) do method feed_is_named? (line 450) | def feed_is_named?(%{"name" => feed_name}, name) do method has_feed? (line 464) | def has_feed?(%{"data" => _data} = payload, :vehicle_status) do method has_feed? (line 468) | def has_feed?(%{"data" => _data} = payload, name) do method feeds (line 473) | def feeds(%{"data" => _data} = payload) do method non_nil_sum (line 487) | def non_nil_sum(values) do method before_v3? (line 491) | defp before_v3?(%{"version" => version}), do: String.starts_with?(vers... method before_v3? (line 494) | defp before_v3?(%{}), do: true method cached_http_get (line 496) | defp cached_http_get(url) do method http_client (line 504) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/transport/gbfs_to_geojson.ex class Transport.GbfsToGeojson (line 1) | defmodule Transport.GbfsToGeojson method gbfs_geojsons (line 18) | def gbfs_geojsons(url, params) do method add_feeds (line 25) | def add_feeds(payload, %{"output" => "stations"}) do method add_feeds (line 32) | def add_feeds(payload, %{"output" => "free_floating"}) do method add_feeds (line 38) | def add_feeds(payload, %{"output" => "geofencing_zones"}) do method add_feeds (line 44) | def add_feeds(payload, _) do method add_station_information (line 55) | defp add_station_information(resp_data, payload) do method station_information_geojson! (line 71) | defp station_information_geojson!(url) do method station_name (line 101) | defp station_name(%{"name" => names}) do method add_station_status (line 106) | defp add_station_status(%{"stations" => stations_geojson} = resp_data,... method add_station_status (line 121) | defp add_station_status(resp_data, _payload) do method station_status_geojson! (line 126) | defp station_status_geojson!(station_status_url, stations_geojson) do method add_availability (line 155) | def add_availability(data) do method add_vehicle_status (line 161) | defp add_vehicle_status(resp_data, payload) do method vehicle_status_geojson! (line 177) | defp vehicle_status_geojson!(url) do method add_geofencing_zones (line 206) | defp add_geofencing_zones(resp_data, payload) do method geofencing_zones_geojson! (line 225) | defp geofencing_zones_geojson!(url) do method fetch_gbfs_endpoint! (line 232) | defp fetch_gbfs_endpoint!(url) do method feed_url_from_payload (line 238) | defp feed_url_from_payload(payload, feed_name) do method http_client (line 242) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/transport/gbfs_utils.ex class Transport.GBFSUtils (line 1) | defmodule Transport.GBFSUtils method gbfs_validation_link (line 7) | def gbfs_validation_link(%Resource{format: "gbfs", url: url}) do method gbfs_validation_link (line 11) | def gbfs_validation_link(url) do FILE: apps/transport/lib/transport/gtfs_data.ex class Transport.GTFSData (line 1) | defmodule Transport.GTFSData method bounding_box_points (line 36) | def bounding_box_points({north, south, east, west}) do method build_detailed (line 47) | def build_detailed({north, south, east, west}, opts \\ []) do method geojson_properties (line 97) | defp geojson_properties(s, :map_mode) do method geojson_properties (line 107) | defp geojson_properties(s, :api_mode) do method count_points (line 120) | def count_points({north, south, east, west}) do method list_views (line 163) | def list_views(pattern) do method create_if_not_exist_materialized_views (line 172) | def create_if_not_exist_materialized_views do method refresh_materialized_views (line 179) | def refresh_materialized_views do method create_or_refresh_all_materialized_views (line 191) | def create_or_refresh_all_materialized_views do method find_closest_zoom_level (line 242) | def find_closest_zoom_level({_snap_x, snap_y}) do method build_clusters_json_encoded (line 255) | def build_clusters_json_encoded({north, south, east, west}, {snap_x, s... method build_clusters_query (line 289) | def build_clusters_query({north, south, east, west}, {snap_x, snap_y}) do FILE: apps/transport/lib/transport/gtfs_diff.ex class Transport.GTFSDiff (line 1) | defmodule Transport.GTFSDiff method unzip_contains_file? (line 55) | defp unzip_contains_file?(unzip, file_name) do method parse_from_unzip (line 61) | defp parse_from_unzip(unzip, file_name) do method parse_to_map (line 74) | defp parse_to_map(parsed_csv, file_name) do method parse_diff_output (line 93) | def parse_diff_output(binary) do method build_headers (line 110) | defp build_headers(headers) do method build_row (line 115) | defp build_row(headers, row) do method get_headers (line 121) | defp get_headers(unzip, file_name) do method save_headers_in_acc (line 135) | defp save_headers_in_acc(r, {}) do method save_headers_in_acc (line 139) | defp save_headers_in_acc(_r, acc), do: acc method file_is_handled? (line 141) | defp file_is_handled?(file_name), do: not (file_name |> primary_key() ... method primary_key (line 143) | defp primary_key(file_name) do method row_key (line 147) | defp row_key(row, nil) do method row_key (line 152) | defp row_key(row, primary_key) do method get_delete_messages (line 156) | defp get_delete_messages(deleted_ids, file_name) do method get_add_messages (line 163) | defp get_add_messages(added_ids, file_b, file_name) do method get_update_messages (line 171) | defp get_update_messages(update_ids, file_a, file_b, file_name) do method diff_file (line 209) | defp diff_file(file_name, file_a, file_b) do method compare_files (line 231) | defp compare_files(unzip_1, unzip_2, profile \\ "full") do method file_diff (line 244) | defp file_diff(%{added_files: added_files, deleted_files: deleted_file... method column_diff (line 260) | defp column_diff(unzip_1, unzip_2, %{same_files: same_files, added_fil... method row_diff (line 295) | defp row_diff(unzip_1, unzip_2, notify_func, locale, profile) do method computing_diff_log_message (line 312) | defp computing_diff_log_message(file_name, locale) do method diff (line 318) | def diff(unzip_1, unzip_2, profile, notify_func, locale) do method dump_diff (line 330) | def dump_diff(diff, filepath) do method list_entries (line 360) | defp list_entries(unzip, profile) do method files_to_analyze (line 365) | def files_to_analyze(profile) do FILE: apps/transport/lib/transport/gtfs_export_stops.ex class Transport.GTFSExportStops (line 1) | defmodule Transport.GTFSExportStops method data_import_ids (line 7) | def data_import_ids do method build_stops_report (line 14) | def build_stops_report(data_import_ids) do method export_headers (line 70) | def export_headers do method export_stops_report (line 78) | def export_stops_report(data_import_ids) do FILE: apps/transport/lib/transport/gtfs_import_stops.ex class Transport.GTFSImportStops (line 1) | defmodule Transport.GTFSImportStops method import_stops_and_remove_previous (line 12) | def import_stops_and_remove_previous(resource_history_id) do FILE: apps/transport/lib/transport/gtfs_query.ex class Transport.GtfsQuery (line 1) | defmodule Transport.GtfsQuery method next_departures (line 7) | def next_departures(stop_id, import_id, datetime_start, window_in_minu... FILE: apps/transport/lib/transport/gtfs_rt.ex class Transport.GTFSRT (line 1) | defmodule Transport.GTFSRT method decode_remote_feed (line 10) | def decode_remote_feed(url) do method timestamp (line 33) | def timestamp(%FeedMessage{} = feed) do method feed_is_too_old? (line 45) | def feed_is_too_old?(%FeedMessage{} = feed, comparison \\ DateTime.utc... method feed_timestamp_delay (line 55) | def feed_timestamp_delay(%FeedMessage{} = feed, comparison \\ DateTime... method count_entities (line 67) | def count_entities(%FeedMessage{} = feed) do method service_alerts (line 77) | def service_alerts(%FeedMessage{} = feed) do method trip_updates (line 81) | def trip_updates(%FeedMessage{} = feed) do method vehicle_positions (line 85) | def vehicle_positions(%FeedMessage{} = feed) do method has_service_alerts? (line 89) | def has_service_alerts?(%FeedMessage{} = feed) do method service_alerts_for_display (line 93) | def service_alerts_for_display(%FeedMessage{} = feed, requested_langua... method best_translation (line 110) | def best_translation(nil, _), do: nil method active? (line 129) | def active?([]), do: true method active? (line 131) | def active?(time_ranges) do method current_active_period (line 135) | def current_active_period(time_ranges) do method to_datetime (line 142) | defp to_datetime(nil), do: nil method current? (line 148) | def current?(%TimeRange{start: nil, end: nil}), do: true method current? (line 158) | def current?(%TimeRange{start: date_start, end: date_end}) do method http_client (line 162) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() FILE: apps/transport/lib/transport/history_fetcher.ex class Transport.History.Fetcher (line 1) | defmodule Transport.History.Fetcher method impl (line 10) | def impl, do: Application.get_env(:transport, :history_impl) method history_resources (line 12) | def history_resources(%DB.Dataset{} = dataset, options \\ []) do class Transport.History.Fetcher.Database (line 25) | defmodule Transport.History.Fetcher.Database method history_resources (line 34) | def history_resources(%DB.Dataset{id: dataset_id}, options \\ []) do method maybe_limit (line 91) | defp maybe_limit(%Ecto.Query{} = query, nil), do: query method maybe_limit (line 92) | defp maybe_limit(%Ecto.Query{} = query, max_records), do: query |> l... class Transport.History.Fetcher.Null (line 95) | defmodule Transport.History.Fetcher.Null method history_resources (line 103) | def history_resources(%DB.Dataset{}, _options \\ []), do: [] FILE: apps/transport/lib/transport/import_data.ex class Transport.ImportData (line 1) | defmodule Transport.ImportData method availability_checker (line 13) | defp availability_checker, do: Transport.AvailabilityChecker.Wrapper.i... method max_import_concurrent_jobs (line 15) | def max_import_concurrent_jobs do method import_all_datasets (line 20) | def import_all_datasets do method import_validate_all (line 42) | def import_validate_all do method refresh_autocomplete (line 47) | def refresh_autocomplete do method generate_import_logs! (line 53) | def generate_import_logs!( method import_dataset_logged (line 84) | def import_dataset_logged(dataset) do method import_dataset! (line 99) | def import_dataset!(%Dataset{ method import_from_data_gouv (line 112) | def import_from_data_gouv(datagouv_id, type) do method prepare_dataset_from_data_gouv_response (line 132) | def prepare_dataset_from_data_gouv_response(%{"message" => error}, _),... method prepare_dataset_from_data_gouv_response (line 134) | def prepare_dataset_from_data_gouv_response(%{} = data_gouv_resp, type... method licence (line 168) | def licence(%{"license" => datagouv_licence}), do: datagouv_licence method licence (line 169) | def licence(_), do: nil method get_logo (line 184) | def get_logo(%{"organization" => %{"logo" => logo}}), do: logo method get_logo (line 185) | def get_logo(%{"owner" => %{"avatar" => logo}}), do: logo method get_logo (line 186) | def get_logo(_), do: nil method get_logo_thumbnail (line 201) | def get_logo_thumbnail(%{"organization" => %{"logo_thumbnail" => logo}... method get_logo_thumbnail (line 202) | def get_logo_thumbnail(%{"owner" => %{"avatar_thumbnail" => logo}}), d... method get_logo_thumbnail (line 203) | def get_logo_thumbnail(_), do: nil method get_nb_reuses (line 206) | def get_nb_reuses(%{"metrics" => %{"reuses" => reuses}}), do: reuses method get_nb_reuses (line 207) | def get_nb_reuses(_), do: 0 method get_resources (line 210) | def get_resources(dataset, type) do method cleaned_url (line 267) | def cleaned_url(url) do method get_valid_resources (line 297) | def get_valid_resources(%{"resources" => resources}, "public-transit") do method get_valid_resources (line 308) | def get_valid_resources(%{"resources" => resources}, _type) do method get_valid_documentation_resources (line 313) | def get_valid_documentation_resources(resources) do method get_valid_gtfs_resources (line 320) | def get_valid_gtfs_resources(resources) do method get_valid_netex_resources (line 329) | def get_valid_netex_resources(resources) do method get_valid_gtfs_rt_resources (line 334) | def get_valid_gtfs_rt_resources(resources) do method get_valid_siri_resources (line 343) | def get_valid_siri_resources(resources) do method get_valid_siri_lite_resources (line 348) | def get_valid_siri_lite_resources(resources) do method get_valid_ssim_resources (line 353) | def get_valid_ssim_resources(resources) do method get_community_resources (line 358) | def get_community_resources(%{"id" => datagouv_id}) do method ods_resource? (line 387) | def ods_resource?(%{"harvest" => %{"uri" => uri}}) do method ods_resource? (line 393) | def ods_resource?(_), do: false method gtfs? (line 423) | def gtfs?(%{} = params) do method gtfs? (line 437) | def gtfs?(str), do: format?(str, "gtfs") and not gtfs_rt?(str) method gtfs_rt? (line 462) | def gtfs_rt?(%{} = params) do method gtfs_rt? (line 474) | def gtfs_rt?(_), do: false method documentation? (line 491) | def documentation?(%{"type" => "documentation"}), do: true method documentation? (line 493) | def documentation?(%{"title" => resource_title, "format" => _} = args) do method documentation? (line 497) | def documentation?(_), do: false method documentation_format? (line 508) | def documentation_format?(%{"format" => format}), do: documentation_fo... method documentation_format? (line 510) | def documentation_format?(format) do method siri? (line 533) | def siri?(%{} = params) do method siri? (line 545) | def siri?(format), do: not siri_lite?(format) and format?(format, "siri") method siri_lite? (line 564) | def siri_lite?(%{} = params) do method siri_lite? (line 576) | def siri_lite?(format), do: format?(format, "SIRI Lite") method isolated_siri_lite? (line 582) | def isolated_siri_lite?(%{"description" => description}) do method isolated_siri_lite? (line 589) | def isolated_siri_lite?(_), do: false method ssim? (line 602) | def ssim?(format), do: format?(format, "SSIM") method format? (line 617) | def format?(nil, _), do: false method format? (line 618) | def format?(%{"format" => declared_format}, expected), do: format?(dec... method format? (line 619) | def format?(value, [head | tail]), do: format?(value, head) || format?... method format? (line 620) | def format?(_, []), do: false method format? (line 622) | def format?(str, expected), method clean_format (line 635) | def clean_format(format), method zip? (line 655) | def zip?(%{"mime" => nil, "format" => format}), do: zip?(format) method zip? (line 656) | def zip?(%{"mime" => mime, "format" => nil}), do: zip?(mime) method zip? (line 657) | def zip?(%{"mime" => mime, "format" => format}), do: zip?(mime) || zip... method zip? (line 658) | def zip?(str), do: format?(str, "zip") method netex? (line 682) | def netex?(%{} = params) do method netex? (line 693) | def netex?(s), do: format?(s, "NeTEx") method check_download_url (line 708) | def check_download_url(%{"download_url" => nil}), do: false method check_download_url (line 709) | def check_download_url(%{"download_url" => _}), do: true method parse_datetime (line 725) | def parse_datetime(nil), do: nil method formated_format (line 787) | def formated_format(%{"url" => "https://bdx.mecatran.com/utw/ws/siri/2... method formated_format (line 792) | def formated_format(resource, type, is_community_resource) do method formated_type (line 817) | def formated_type(%{"type" => type} = resource) do method geojson? (line 825) | defp geojson?(%{"url" => url}, format), do: format?(format, "geojson")... method geojson? (line 826) | defp geojson?(_, format), do: format?(format, "geojson") method gbfs? (line 837) | def gbfs?(%{"url" => url} = params) do method get_title (line 866) | def get_title(%{"url" => url}), do: Helpers.filename_from_url(url) method get_existing_resource (line 871) | defp get_existing_resource(%{"is_ods_csv" => true, "url" => url}, data... method get_existing_resource (line 875) | defp get_existing_resource(%{"url" => url, "id" => resource_datagouv_i... method get_existing_resource_by_url (line 880) | defp get_existing_resource_by_url(url, dataset_datagouv_id) do method get_existing_resource_by_datagouv_id (line 888) | defp get_existing_resource_by_datagouv_id(resource_datagouv_id, datase... method get_original_resource_url (line 897) | def get_original_resource_url(%{"extras" => %{"transport:original_reso... method get_original_resource_url (line 900) | def get_original_resource_url(_), do: nil method invalid_result? (line 903) | defp invalid_result?({:ok, {:error, _}}), do: true method invalid_result? (line 904) | defp invalid_result?({:ok, _}), do: false method invalid_result? (line 905) | defp invalid_result?({:exit, _}), do: true method get_publisher (line 907) | defp get_publisher(%{"organization" => %{"name" => name}}), do: name method get_publisher (line 909) | defp get_publisher(%{"owner" => %{"first_name" => first_name, "last_na... method get_publisher (line 912) | defp get_publisher(_), do: nil FILE: apps/transport/lib/transport/import_data_worker.ex class Transport.ImportDataWorker (line 1) | defmodule Transport.ImportDataWorker method import_validate_all (line 12) | def import_validate_all do method force_validate_gtfs_transport (line 17) | def force_validate_gtfs_transport do method start_link (line 21) | def start_link([]) do method init (line 28) | def init(stack) do method handle_cast (line 33) | def handle_cast({:import_and_validation}, state) do method handle_cast (line 43) | def handle_cast({:force_validate_gtfs_transport}, state) do method handle_info (line 55) | def handle_info(_msg, state) do FILE: apps/transport/lib/transport/log_cleaner.ex class Transport.LogCleaner (line 1) | defmodule Transport.LogCleaner method clean_old_logs (line 11) | def clean_old_logs do method count_logs_import (line 28) | defp count_logs_import, do: Repo.aggregate(LogsImport, :count, :id) FILE: apps/transport/lib/transport/log_time_taken.ex class Transport.LogTimeTaken (line 1) | defmodule Transport.LogTimeTaken method log_time_taken (line 14) | def log_time_taken(message, cb) do FILE: apps/transport/lib/transport/notification_reason.ex class Transport.NotificationReason (line 1) | defmodule Transport.NotificationReason method all_reasons (line 102) | def all_reasons, do: @all_reasons method possible_roles (line 119) | def possible_roles, do: @possible_roles method subscribable_reasons (line 126) | def subscribable_reasons do method unsuscribable_reasons (line 135) | def unsuscribable_reasons do method reasons_for_role (line 149) | def reasons_for_role(role) do method subscribable_reasons_for_role (line 159) | def subscribable_reasons_for_role(role) do method hidden_reasons_for_role (line 171) | def hidden_reasons_for_role(role) do method reasons_related_to_datasets (line 181) | def reasons_related_to_datasets, do: @dataset_reasons method platform_wide_reasons (line 184) | def platform_wide_reasons, do: @platform_reasons method subscribable_reasons_related_to_datasets (line 191) | def subscribable_reasons_related_to_datasets(role) do method subscribable_platform_wide_reasons (line 207) | def subscribable_platform_wide_reasons(role) do method shown_subscribable_platform_wide_reasons (line 220) | def shown_subscribable_platform_wide_reasons(role) do method reason_to_str (line 231) | def reason_to_str(reason) do FILE: apps/transport/lib/transport/phoenix_dashboard_telemetry.ex class Transport.PhoenixDashboardTelemetry (line 1) | defmodule Transport.PhoenixDashboardTelemetry method start_link (line 9) | def start_link(arg) do method init (line 14) | def init(_arg) do method metrics (line 26) | def metrics do method periodic_measurements (line 52) | defp periodic_measurements do FILE: apps/transport/lib/transport/preemptive_api_cache.ex class Transport.PreemptiveAPICache (line 1) | defmodule Transport.PreemptiveAPICache method populate_cache (line 14) | def populate_cache do FILE: apps/transport/lib/transport/preemptive_base_cache.ex class Transport.PreemptiveBaseCache (line 1) | defmodule Transport.PreemptiveBaseCache FILE: apps/transport/lib/transport/preemptive_home_stats_cache.ex class Transport.PreemptiveHomeStatsCache (line 1) | defmodule Transport.PreemptiveHomeStatsCache method populate_cache (line 14) | def populate_cache do FILE: apps/transport/lib/transport/preemptive_stats_cache.ex class Transport.PreemptiveStatsCache (line 1) | defmodule Transport.PreemptiveStatsCache method populate_cache (line 15) | def populate_cache do FILE: apps/transport/lib/transport/protobuf/gtfs-realtime.pb.ex class TransitRealtime.FeedMessage (line 154) | defmodule TransitRealtime.FeedMessage class TransitRealtime.FeedHeader (line 165) | defmodule TransitRealtime.FeedHeader class TransitRealtime.FeedHeader.Incrementality (line 1) | defmodule TransitRealtime.FeedHeader.Incrementality class TransitRealtime.FeedEntity (line 185) | defmodule TransitRealtime.FeedEntity class TransitRealtime.TripUpdate (line 294) | defmodule TransitRealtime.TripUpdate class TransitRealtime.TripUpdate.StopTimeEvent (line 207) | defmodule TransitRealtime.TripUpdate.StopTimeEvent class TransitRealtime.TripUpdate.StopTimeUpdate (line 245) | defmodule TransitRealtime.TripUpdate.StopTimeUpdate class TransitRealtime.TripUpdate.StopTimeUpdate.ScheduleRelationship (line 10) | defmodule TransitRealtime.TripUpdate.StopTimeUpdate.ScheduleRelation... class TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties (line 220) | defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties class TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties.DropOffPickupType (line 21) | defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProper... class TransitRealtime.TripUpdate.TripProperties (line 279) | defmodule TransitRealtime.TripUpdate.TripProperties class TransitRealtime.VehiclePosition (line 348) | defmodule TransitRealtime.VehiclePosition class TransitRealtime.VehiclePosition.VehicleStopStatus (line 32) | defmodule TransitRealtime.VehiclePosition.VehicleStopStatus class TransitRealtime.VehiclePosition.CongestionLevel (line 42) | defmodule TransitRealtime.VehiclePosition.CongestionLevel class TransitRealtime.VehiclePosition.OccupancyStatus (line 54) | defmodule TransitRealtime.VehiclePosition.OccupancyStatus class TransitRealtime.VehiclePosition.CarriageDetails (line 320) | defmodule TransitRealtime.VehiclePosition.CarriageDetails class TransitRealtime.Alert (line 394) | defmodule TransitRealtime.Alert class TransitRealtime.Alert.Cause (line 70) | defmodule TransitRealtime.Alert.Cause class TransitRealtime.Alert.Effect (line 89) | defmodule TransitRealtime.Alert.Effect class TransitRealtime.Alert.SeverityLevel (line 107) | defmodule TransitRealtime.Alert.SeverityLevel class TransitRealtime.TimeRange (line 482) | defmodule TransitRealtime.TimeRange class TransitRealtime.Position (line 493) | defmodule TransitRealtime.Position class TransitRealtime.TripDescriptor (line 520) | defmodule TransitRealtime.TripDescriptor class TransitRealtime.TripDescriptor.ScheduleRelationship (line 118) | defmodule TransitRealtime.TripDescriptor.ScheduleRelationship class TransitRealtime.TripDescriptor.ModifiedTripSelector (line 507) | defmodule TransitRealtime.TripDescriptor.ModifiedTripSelector class TransitRealtime.VehicleDescriptor (line 547) | defmodule TransitRealtime.VehicleDescriptor class TransitRealtime.VehicleDescriptor.WheelchairAccessible (line 133) | defmodule TransitRealtime.VehicleDescriptor.WheelchairAccessible class TransitRealtime.EntitySelector (line 567) | defmodule TransitRealtime.EntitySelector class TransitRealtime.TranslatedString (line 593) | defmodule TransitRealtime.TranslatedString class TransitRealtime.TranslatedString.Translation (line 582) | defmodule TransitRealtime.TranslatedString.Translation class TransitRealtime.TranslatedImage (line 615) | defmodule TransitRealtime.TranslatedImage class TransitRealtime.TranslatedImage.LocalizedImage (line 603) | defmodule TransitRealtime.TranslatedImage.LocalizedImage class TransitRealtime.Shape (line 629) | defmodule TransitRealtime.Shape class TransitRealtime.Stop (line 640) | defmodule TransitRealtime.Stop class TransitRealtime.Stop.WheelchairBoarding (line 144) | defmodule TransitRealtime.Stop.WheelchairBoarding class TransitRealtime.TripModifications (line 744) | defmodule TransitRealtime.TripModifications class TransitRealtime.TripModifications.Modification (line 697) | defmodule TransitRealtime.TripModifications.Modification class TransitRealtime.TripModifications.SelectedTrips (line 733) | defmodule TransitRealtime.TripModifications.SelectedTrips class TransitRealtime.StopSelector (line 762) | defmodule TransitRealtime.StopSelector class TransitRealtime.ReplacementStop (line 773) | defmodule TransitRealtime.ReplacementStop FILE: apps/transport/lib/transport/quantum_scheduler.ex class Transport.QuantumScheduler (line 1) | defmodule Transport.QuantumScheduler method scheduled_jobs (line 17) | def scheduled_jobs do FILE: apps/transport/lib/transport/schemas.ex class Transport.Schemas (line 48) | defmodule Transport.Schemas class Transport.Schemas.Wrapper (line 1) | defmodule Transport.Schemas.Wrapper method impl (line 5) | defp impl, do: Application.get_env(:transport, :schemas_impl) method schemas_by_type (line 8) | def schemas_by_type(type), do: impl().schemas_by_type(type) method transport_schemas (line 11) | def transport_schemas, do: impl().transport_schemas() method known_schema? (line 13) | def known_schema?(schema_name), do: Map.has_key?(transport_schemas()... method schema_type (line 15) | def schema_type(schema_name) do method tableschema? (line 22) | def tableschema?(schema_name) do method jsonschema? (line 26) | def jsonschema?(schema_name) do method schema_url (line 57) | def schema_url(schema_name, schema_version) do method documentation_url (line 72) | def documentation_url(schema_name), do: documentation_url(schema_name,... method documentation_url (line 74) | def documentation_url(schema_name, nil = _schema_version) do method transport_schemas (line 95) | def transport_schemas do method cache_fetch (line 111) | def cache_fetch(cache_key, comp_fn, ttl \\ 300) do method http_client (line 126) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method cache_name (line 127) | defp cache_name, do: Transport.Application.cache_name() FILE: apps/transport/lib/transport/search_communes.ex class Transport.SearchCommunes (line 1) | defmodule Transport.SearchCommunes method start_link (line 10) | def start_link(_initial_value) do method search (line 14) | def search(term) do method filter (line 42) | def filter(communes, term) do method normalize_alpha (line 63) | def normalize_alpha(s) do method get_num (line 85) | def get_num(term) do method search_insee (line 103) | def search_insee(_, ""), do: true method search_insee (line 105) | def search_insee(%{insee: insee}, n) do method make_search_struct (line 110) | def make_search_struct(%{nom: nom} = s), do: Map.put(s, :normalized_no... method load_communes (line 113) | defp load_communes do method load_administrative_divisions (line 119) | def load_administrative_divisions do method load_and_make_search_struct (line 125) | defp load_and_make_search_struct(query) do FILE: apps/transport/lib/transport/stats_handler.ex class Transport.StatsHandler (line 1) | defmodule Transport.StatsHandler method store_stats (line 13) | def store_stats do method compute_stats (line 34) | def compute_stats do method count_resources_stats (line 89) | def count_resources_stats do method gbfs_stats (line 104) | def gbfs_stats do method gbfs_counters_stats (line 129) | def gbfs_counters_stats(rows) do method gbfs_versions_stats (line 144) | def gbfs_versions_stats(rows) do method gbfs_vehicle_types_stats (line 157) | def gbfs_vehicle_types_stats(rows) do method gbfs_feed_types_stats (line 170) | def gbfs_feed_types_stats(rows) do method count_feed_types_gtfs_rt (line 182) | def count_feed_types_gtfs_rt do method reuses_stats (line 202) | def reuses_stats do method count_datasets_climate_resilience_bill (line 226) | defp count_datasets_climate_resilience_bill do method get_population (line 235) | defp get_population(datasets) do method nb_dataset_types (line 242) | defp nb_dataset_types do method nb_reuses (line 248) | defp nb_reuses do method count_dataset_with_format (line 252) | def count_dataset_with_format(format) do method compute_aom_gtfs_max_severity (line 261) | def compute_aom_gtfs_max_severity do method ratio_aom_with_at_most_warnings (line 317) | defp ratio_aom_with_at_most_warnings(_aom_max_severity, 0) do method ratio_aom_with_at_most_warnings (line 321) | defp ratio_aom_with_at_most_warnings(aom_max_severity, nb_aom_with_dat... method ratio_aom_good_quality (line 332) | defp ratio_aom_good_quality(_aom_max_severity, 0) do method ratio_aom_good_quality (line 336) | defp ratio_aom_good_quality(aom_max_severity, nb_aom_with_data) do method count_geo_data_lines (line 345) | def count_geo_data_lines do method count_geo_data_lines (line 350) | def count_geo_data_lines(feature) do FILE: apps/transport/lib/transport/telemetry.ex class Transport.Telemetry (line 1) | defmodule Transport.Telemetry method conversions_get_event_names (line 8) | def conversions_get_event_names do method handle_event (line 43) | def handle_event( method database_event_name (line 57) | def database_event_name(event_name), do: Enum.join(event_name, ":") method truncate_datetime_to_hour (line 66) | def truncate_datetime_to_hour(datetime) do method truncate_datetime_to_day (line 74) | def truncate_datetime_to_day(datetime) do method count_event (line 81) | def count_event(target, event, period \\ DateTime.utc_now(), truncate_... method setup (line 101) | def setup do FILE: apps/transport/lib/transport/vault.ex class Transport.Vault (line 1) | defmodule Transport.Vault method init (line 9) | def init(config) do method key (line 18) | defp key do FILE: apps/transport/lib/transport/zip_probe.ex class Transport.ZipProbe (line 1) | defmodule Transport.ZipProbe method likely_zip_content? (line 23) | def likely_zip_content?(_), do: false FILE: apps/transport/lib/transport_web.ex class TransportWeb (line 1) | defmodule TransportWeb method static_paths (line 19) | def static_paths, do: ~w(css documents images js favicon.ico) method controller (line 21) | def controller do method view (line 35) | def view do method view_helpers (line 60) | def view_helpers do method router (line 66) | def router do method channel (line 77) | def channel do method serializer (line 84) | def serializer do method verified_routes (line 90) | def verified_routes do FILE: apps/transport/lib/transport_web/api/controllers/aom_controller.ex class TransportWeb.API.AomController (line 1) | defmodule TransportWeb.API.AomController method open_api_operation (line 11) | def open_api_operation(action), do: apply(__MODULE__, :"#{action}_oper... method by_coordinates_operation (line 14) | def by_coordinates_operation, method by_coordinates (line 29) | def by_coordinates(conn, %{"lon" => lon, "lat" => lat}) do method by_coordinates (line 38) | def by_coordinates(conn, _), do: invalid_parameters(conn) method by_insee_operation (line 41) | def by_insee_operation, method by_insee (line 55) | def by_insee(conn, %{"insee" => insee}) do method query_by_coordinates (line 74) | def query_by_coordinates(conn, lon, lat) do method invalid_parameters (line 85) | def invalid_parameters(conn), method geojson_operation (line 89) | def geojson_operation, method geojson (line 101) | def geojson(conn, _params) do FILE: apps/transport/lib/transport_web/api/controllers/autocomplete_controller.ex class TransportWeb.API.AutocompleteController (line 1) | defmodule TransportWeb.API.AutocompleteController method open_api_operation (line 8) | def open_api_operation(action), do: apply(__MODULE__, :"#{action}_oper... method get_result_url (line 11) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 14) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 17) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 19) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 22) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 25) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 28) | defp get_result_url(conn, %DB.Autocomplete{:place_id => id, :type => "... method get_result_url (line 30) | defp get_result_url(conn, %DB.Autocomplete{:place_id => format, :type ... method get_result_url (line 33) | defp get_result_url(conn, %DB.Autocomplete{:place_id => slug, :type =>... method approx_search_query (line 36) | defp approx_search_query(query) do method autocomplete (line 45) | def autocomplete(%Plug.Conn{} = conn, params) do method autocomplete_operation (line 95) | def autocomplete_operation do FILE: apps/transport/lib/transport_web/api/controllers/datasets_controller.ex class TransportWeb.API.DatasetController (line 1) | defmodule TransportWeb.API.DatasetController method open_api_operation (line 28) | def open_api_operation(action), do: apply(__MODULE__, :"#{action}_oper... method datasets_operation (line 31) | def datasets_operation, method authorization_header (line 46) | defp authorization_header do method datasets (line 58) | def datasets(%Plug.Conn{} = conn, _params) do method add_enriched_resources_to_dataset (line 68) | def add_enriched_resources_to_dataset(dataset, nil = _enriched_dataset... method add_enriched_resources_to_dataset (line 70) | def add_enriched_resources_to_dataset(dataset, enriched_dataset) do method by_id_operation (line 79) | def by_id_operation, method geojson_by_id_operation (line 95) | def geojson_by_id_operation, method by_id (line 108) | def by_id(%Plug.Conn{} = conn, %{"id" => datagouv_id}) do method geojson_by_id (line 129) | def geojson_by_id(%Plug.Conn{} = conn, %{"id" => id}) do method keep_valid_features (line 154) | defp keep_valid_features(list) do method to_feature (line 166) | defp to_feature(geom, name) do method to_geojson (line 174) | defp to_geojson(dataset, features), method transform_dataset (line 182) | defp transform_dataset(%Dataset{} = dataset), method get_publisher (line 206) | defp get_publisher(dataset), method transform_dataset_with_detail (line 214) | defp transform_dataset_with_detail(%Dataset{} = dataset) do method add_conversions (line 230) | defp add_conversions(%{"resources" => resources} = data, %Dataset{} = ... method get_metadata (line 268) | defp get_metadata(%Resource{format: "gtfs-rt", resource_metadata: reso... method get_metadata (line 280) | defp get_metadata(_), do: nil method transform_resource (line 283) | defp transform_resource(resource) do method use_download_url? (line 325) | defp use_download_url?(%DB.Resource{} = resource) do method covered_area (line 332) | def covered_area(%DB.Dataset{declarative_spatial_areas: declarative_sp... method legal_owners (line 338) | defp legal_owners(dataset) do method legal_owners_aom (line 343) | defp legal_owners_aom(aoms) do method legal_owners_region (line 347) | defp legal_owners_region(regions) do method legal_owners_company (line 351) | def legal_owners_company(%{legal_owner_company_siren: nil}), do: [] method legal_owners_company (line 353) | def legal_owners_company(%{legal_owner_company_siren: legal_owner_comp... method offers (line 359) | def offers(%DB.Dataset{} = dataset) do method prepare_datasets_index_data (line 363) | def prepare_datasets_index_data do method prepare_dataset_detail_data (line 418) | defp prepare_dataset_detail_data(%DB.Dataset{} = dataset) do method log_request (line 458) | defp log_request(%Plug.Conn{} = conn, _options) do method maybe_add_token_urls (line 487) | defp maybe_add_token_urls( method maybe_add_token_urls (line 506) | defp maybe_add_token_urls(dataset, _conn), do: dataset FILE: apps/transport/lib/transport_web/api/controllers/features_controller.ex class TransportWeb.API.FeaturesController (line 1) | defmodule TransportWeb.API.FeaturesController method autocomplete (line 4) | def autocomplete(%Plug.Conn{} = conn, %{"contact_id" => contact_id, "n... FILE: apps/transport/lib/transport_web/api/controllers/geo_query_controller.ex class TransportWeb.API.GeoQueryController (line 1) | defmodule TransportWeb.API.GeoQueryController method index (line 19) | def index(%Plug.Conn{} = conn, _), do: render_404(conn) method render_404 (line 21) | def render_404(%Plug.Conn{} = conn), do: conn |> put_status(404) |> js... method transform_geojson (line 23) | def transform_geojson(%DB.GeoDataImport{} = geo_data_import, :bnlc) do method transform_geojson (line 28) | def transform_geojson(%DB.GeoDataImport{} = geo_data_import, :zfe) do method transform_geojson (line 34) | def transform_geojson(%DB.GeoDataImport{} = geo_data_import, :irve) do method transform_geojson (line 49) | def transform_geojson(%DB.GeoDataImport{} = geo_data_import, :gbfs_sta... FILE: apps/transport/lib/transport_web/api/controllers/gtfs_stops_controller.ex class TransportWeb.API.GTFSStopsController (line 1) | defmodule TransportWeb.API.GTFSStopsController method open_api_operation (line 12) | def open_api_operation(action), do: apply(__MODULE__, :"#{action}_oper... method index_operation (line 32) | def index_operation, method index (line 56) | def index( method parse_coordinate_params (line 104) | defp parse_coordinate_params(%{"south" => south, "east" => east, "west... method parse_coordinate_params (line 116) | defp parse_coordinate_params(_params), do: :no_coordinate_params method parse_map_params (line 118) | defp parse_map_params(%{"width_pixels" => width, "height_pixels" => he... method parse_map_params (line 129) | defp parse_map_params(_params), do: :no_map_params method parse_params (line 131) | defp parse_params(params) do FILE: apps/transport/lib/transport_web/api/controllers/stats_controller.ex class TransportWeb.API.StatsController (line 1) | defmodule TransportWeb.API.StatsController method open_api_operation (line 8) | def open_api_operation(action), do: apply(__MODULE__, :"#{action}_oper... method index_operation (line 11) | def index_operation, method vehicles_sharing_operation (line 24) | def vehicles_sharing_operation, method quality_operation (line 37) | def quality_operation, method geojson (line 50) | def geojson(features), method filter_neg (line 59) | defp filter_neg(nil), do: nil method features (line 64) | def features(result) do method vehicles_sharing_features (line 95) | def vehicles_sharing_features(result) do method index (line 108) | def index(%Plug.Conn{} = conn, _params), do: render_features(conn, :ao... method vehicles_sharing (line 111) | def vehicles_sharing(%Plug.Conn{} = conn, _params), method quality (line 115) | def quality(%Plug.Conn{} = conn, _params), do: render_features(conn, :... method render_features (line 135) | defp render_features(conn, item, cache_key) do method render_features (line 143) | defp render_features(conn, item) do method rendered_geojson (line 148) | def rendered_geojson(item, ecto_opts \\ []) method rendered_geojson (line 150) | def rendered_geojson(:quality, ecto_opts) do method rendered_geojson (line 158) | def rendered_geojson(:aoms, ecto_opts) do method rendered_geojson (line 166) | def rendered_geojson(:vehicles_sharing, ecto_opts) do method aom_features_query (line 175) | defp aom_features_query do method vehicles_sharing_features_query (line 199) | def vehicles_sharing_features_query do method quality_features_query (line 215) | def quality_features_query do method dataset_expiration_dates (line 264) | def dataset_expiration_dates do method dataset_error_levels (line 276) | def dataset_error_levels do method relevant_coverage_datasets (line 286) | def relevant_coverage_datasets do FILE: apps/transport/lib/transport_web/api/controllers/validators_controller.ex class TransportWeb.API.ValidatorsController (line 1) | defmodule TransportWeb.API.ValidatorsController method gtfs_transport (line 12) | def gtfs_transport(%Plug.Conn{assigns: %{client: client}} = conn, %{"u... method gtfs_transport (line 21) | def gtfs_transport(%Plug.Conn{} = conn, _) do method send_error_response (line 25) | def send_error_response(%Plug.Conn{} = conn, message) do FILE: apps/transport/lib/transport_web/api/plugs/auth.ex class TransportWeb.API.Plugs.Auth (line 1) | defmodule TransportWeb.API.Plugs.Auth method init (line 11) | def init(default), do: default method call (line 13) | def call(%Plug.Conn{} = conn, _) do method find_client (line 26) | defp find_client([authorization]) do method find_client (line 38) | defp find_client(_), do: :error FILE: apps/transport/lib/transport_web/api/plugs/cache.ex class TransportWeb.API.Plugs.PublicCache (line 1) | defmodule TransportWeb.API.Plugs.PublicCache method init (line 13) | def init(options) do method call (line 23) | def call(conn, options) do FILE: apps/transport/lib/transport_web/api/plugs/token_auth.ex class TransportWeb.API.Plugs.TokenAuth (line 1) | defmodule TransportWeb.API.Plugs.TokenAuth method init (line 16) | def init(default), do: default method call (line 18) | def call(%Plug.Conn{} = conn, _) do method find_client (line 31) | defp find_client([authorization]) do method find_client (line 38) | defp find_client(_), do: {:ok, nil} FILE: apps/transport/lib/transport_web/api/router.ex class TransportWeb.API.Router (line 1) | defmodule TransportWeb.API.Router method swagger_info (line 83) | def swagger_info, FILE: apps/transport/lib/transport_web/api/schemas.ex class TransportWeb.API.Schemas (line 1) | defmodule TransportWeb.API.Schemas class GeometryBase (line 16) | defmodule GeometryBase class NumberItems (line 46) | defmodule NumberItems class Point2D (line 56) | defmodule Point2D class LineString (line 71) | defmodule LineString class Polygon (line 93) | defmodule Polygon class MultiPoint (line 124) | defmodule MultiPoint class MultiLineString (line 146) | defmodule MultiLineString class MultiPolygon (line 168) | defmodule MultiPolygon class Geometry (line 193) | defmodule Geometry class Feature (line 212) | defmodule Feature class FeatureCollection (line 237) | defmodule FeatureCollection class AOMResponse (line 254) | defmodule AOMResponse class Offer (line 276) | defmodule Offer class AOM (line 294) | defmodule AOM class Region (line 312) | defmodule Region class Company (line 330) | defmodule Company class City (line 347) | defmodule City class AdministrativeDivision (line 364) | defmodule AdministrativeDivision class CoveredArea (line 389) | defmodule CoveredArea class LegalOwners (line 401) | defmodule LegalOwners class GeoJSONResponse (line 419) | defmodule GeoJSONResponse class ErrorJSONResponse (line 436) | defmodule ErrorJSONResponse class Publisher (line 451) | defmodule Publisher class ResourceUtils (line 468) | defmodule ResourceUtils method get_resource_prop (line 470) | def get_resource_prop(conversions: false), method get_resource_prop (line 533) | def get_resource_prop(conversions: true), method get_community_resource_prop (line 558) | def get_community_resource_prop do method get_resource_optional_properties_keys (line 578) | def get_resource_optional_properties_keys do method conversion_properties (line 590) | defp conversion_properties, class DetailedResource (line 602) | defmodule DetailedResource class SummarizedResource (line 618) | defmodule SummarizedResource class CommunityResource (line 634) | defmodule CommunityResource class ResourceHistory (line 650) | defmodule ResourceHistory class DatasetUtils (line 690) | defmodule DatasetUtils method get_dataset_prop (line 693) | def get_dataset_prop(details: details) do class DatasetSummary (line 765) | defmodule DatasetSummary class DatasetDetails (line 781) | defmodule DatasetDetails class DatasetsResponse (line 798) | defmodule DatasetsResponse class AutocompleteItem (line 809) | defmodule AutocompleteItem method types (line 835) | def types, do: @types class AutocompleteResponse (line 847) | defmodule AutocompleteResponse FILE: apps/transport/lib/transport_web/api/spec.ex class TransportWeb.API.Spec (line 1) | defmodule TransportWeb.API.Spec method spec (line 8) | def spec do FILE: apps/transport/lib/transport_web/api/views/aom_view.ex class TransportWeb.API.AomView (line 1) | defmodule TransportWeb.API.AomView method render (line 4) | def render(conn, %{data: data}) do method render (line 8) | def render(conn, %{features: features}) do FILE: apps/transport/lib/transport_web/api/views/autocomplete_view.ex class TransportWeb.API.AutocompleteView (line 1) | defmodule TransportWeb.API.AutocompleteView method render (line 4) | def render(conn, data) do FILE: apps/transport/lib/transport_web/api/views/dataset_view.ex class TransportWeb.API.DatasetView (line 1) | defmodule TransportWeb.API.DatasetView method render (line 4) | def render(conn, data) do FILE: apps/transport/lib/transport_web/api/views/json_view.ex class TransportWeb.API.JSONView (line 1) | defmodule TransportWeb.API.JSONView method render (line 2) | def render(_conn, %{data: data}) do method render (line 6) | def render(_conn, %{errors: errors}) do FILE: apps/transport/lib/transport_web/api/views/stats_view.ex class TransportWeb.API.StatsView (line 1) | defmodule TransportWeb.API.StatsView method render (line 4) | def render(conn, %{data: geojson}) do FILE: apps/transport/lib/transport_web/channels/explore_channel.ex class TransportWeb.ExploreChannel (line 1) | defmodule TransportWeb.ExploreChannel method explore_topic (line 11) | def explore_topic, do: @explore_topic method viewers_key (line 12) | def viewers_key, do: @viewers_key method join (line 14) | def join(@explore_topic, _message, socket) do method handle_info (line 19) | def handle_info(:after_join, socket) do FILE: apps/transport/lib/transport_web/channels/user_socket.ex class TransportWeb.UserSocket (line 1) | defmodule TransportWeb.UserSocket method connect (line 18) | def connect(_params, socket) do method id (line 35) | def id(_socket), do: nil FILE: apps/transport/lib/transport_web/components/colorful_button.ex class TransportWeb.Components.ColorfulButton (line 1) | defmodule TransportWeb.Components.ColorfulButton method colorful_link (line 18) | def colorful_link(assigns) do method classnames (line 29) | defp classnames(valid, striped, selected) do FILE: apps/transport/lib/transport_web/controllers/aoms_controller.ex class TransportWeb.AOMSController (line 1) | defmodule TransportWeb.AOMSController method index (line 35) | def index(conn, _params), do: render(conn, "index.html", aoms: aoms()) method prepare_aom (line 38) | defp prepare_aom({aom, nom_commune}, gtfs_datasets, aggregated_dataset... method csv (line 69) | def csv(conn, _params) do method aoms (line 77) | def aoms do method csv_content (line 99) | defp csv_content do method formats_by_aom (line 106) | defp formats_by_aom do method gtfs_datasets (line 128) | defp gtfs_datasets do method aggregated_datasets (line 153) | defp aggregated_datasets(gtfs_dataset_by_dataset_id) do method aoms_and_commune_principale (line 185) | defp aoms_and_commune_principale do FILE: apps/transport/lib/transport_web/controllers/atom_controller.ex class TransportWeb.AtomController (line 1) | defmodule TransportWeb.AtomController method index (line 7) | def index(conn, _params) do method get_recently_updated_resources (line 19) | def get_recently_updated_resources(limit_date) do FILE: apps/transport/lib/transport_web/controllers/backoffice/breaking_news_controller.ex class TransportWeb.Backoffice.BreakingNewsController (line 1) | defmodule TransportWeb.Backoffice.BreakingNewsController method index (line 4) | def index(conn, _params) do method update_breaking_news (line 9) | def update_breaking_news(conn, %{"level" => level, "msg" => msg}) do method put_flash_message (line 17) | def put_flash_message(conn, "") do method put_flash_message (line 21) | def put_flash_message(conn, _msg) do FILE: apps/transport/lib/transport_web/controllers/backoffice/broken_urls_controller.ex class TransportWeb.Backoffice.BrokenUrlsController (line 1) | defmodule TransportWeb.Backoffice.BrokenUrlsController method index (line 5) | def index(conn, _params) do method broken_urls (line 10) | def broken_urls do FILE: apps/transport/lib/transport_web/controllers/backoffice/contact_controller.ex class TransportWeb.Backoffice.ContactController (line 1) | defmodule TransportWeb.Backoffice.ContactController method index (line 7) | def index(%Plug.Conn{} = conn, %{} = params) do method new (line 16) | def new(%Plug.Conn{} = conn, params) do method create (line 22) | def create(%Plug.Conn{} = conn, %{"contact" => params}) do method existing_contact (line 41) | defp existing_contact(%{}), do: %DB.Contact{creation_source: :admin} method edit (line 44) | def edit(%Plug.Conn{} = conn, %{"id" => contact_id} = params) do method delete (line 51) | def delete(%Plug.Conn{} = conn, %{"id" => _} = params) do method csv_export (line 59) | def csv_export(%Plug.Conn{assigns: %{current_user: current_user}} = co... method columns_for_role (line 123) | defp columns_for_role(role) do method send_csv_response (line 132) | defp send_csv_response(chunks, filename, csv_header, %Plug.Conn{} = co... method send_csv_chunk (line 148) | defp send_csv_chunk(%Plug.Conn{} = conn, data) do method build_csv_rows (line 152) | defp build_csv_rows(%Postgrex.Result{rows: rows, columns: columns}, cs... method build_csv_row (line 158) | defp build_csv_row(csv_header, row) do method decrypt_columns (line 165) | defp decrypt_columns(contact_row) do method decrypt! (line 171) | defp decrypt!(nil), do: nil method decrypt! (line 172) | defp decrypt!(value), do: Transport.Vault.decrypt!(value) method add_roles_columns (line 174) | defp add_roles_columns(%{"producer_reasons" => _, "reuser_reasons" => ... method add_producer_columns (line 178) | defp add_producer_columns(%{"producer_reasons" => producer_reasons} = ... method add_reuser_columns (line 184) | defp add_reuser_columns(%{"reuser_reasons" => reuser_reasons} = row) do method render_form (line 190) | defp render_form(%Plug.Conn{assigns: assigns} = conn) do method render_index (line 204) | defp render_index(contacts, conn, params) do method search_datalist (line 216) | def search_datalist do method datasets_datalist (line 232) | def datasets_datalist do method notification_subscriptions_for_contact (line 247) | defp notification_subscriptions_for_contact(nil), do: [] method notifications_for_contact (line 260) | defp notifications_for_contact(nil), do: [] method notifications_months_limit (line 263) | def notifications_months_limit, do: 6 FILE: apps/transport/lib/transport_web/controllers/backoffice/dashboard_controller.ex class TransportWeb.Backoffice.DashboardController (line 1) | defmodule TransportWeb.Backoffice.DashboardController method index (line 7) | def index(conn, _params) do FILE: apps/transport/lib/transport_web/controllers/backoffice/dataset_controller.ex class TransportWeb.Backoffice.DatasetController (line 1) | defmodule TransportWeb.Backoffice.DatasetController method post (line 11) | def post(%Plug.Conn{} = conn, %{"form" => form_params} = params) do method transform_custom_tags_to_list (line 79) | defp transform_custom_tags_to_list(form_params) do method transform_legal_owners_region_to_list (line 84) | defp transform_legal_owners_region_to_list(form_params) do method transform_legal_owners_aom_to_list (line 89) | defp transform_legal_owners_aom_to_list(form_params) do method transform_declarative_spatial_areas_to_list (line 94) | defp transform_declarative_spatial_areas_to_list(form_params) do method transform_offers_to_list (line 101) | defp transform_offers_to_list(form_params) do method transform_dataset_subtypes_to_list (line 106) | defp transform_dataset_subtypes_to_list(form_params) do method insert_dataset (line 112) | defp insert_dataset(changeset) do method import_from_data_gouv_fr (line 123) | def import_from_data_gouv_fr(%Plug.Conn{} = conn, %{"id" => id, "stay_... method import_from_data_gouv_fr (line 126) | def import_from_data_gouv_fr(%Plug.Conn{} = conn, %{"id" => id}), method import_from_data_gouv_fr_aux (line 130) | defp import_from_data_gouv_fr_aux(conn, id) do method delete (line 142) | def delete(%Plug.Conn{} = conn, %{"id" => id}) do method import_validate_all (line 155) | def import_validate_all(%Plug.Conn{} = conn, _args) do method force_validate_gtfs_transport (line 167) | def force_validate_gtfs_transport(%Plug.Conn{} = conn, _args) do method resource_related_create (line 181) | def resource_related_create(%Plug.Conn{} = conn, %{"id" => dataset_id}... method resource_related_delete (line 210) | def resource_related_delete(%Plug.Conn{} = conn, %{"id" => dataset_id}... method resource_format_override (line 235) | def resource_format_override(%Plug.Conn{} = conn, params) do method flash (line 254) | defp flash({:ok, _message}, conn, ok_message, err_message), method flash (line 257) | defp flash(:ok, conn, ok_message, _err_message), do: put_flash(conn, :... method flash (line 259) | defp flash({:error, %{errors: errors}}, conn, _ok, err_message) do method flash (line 265) | defp flash({:error, message}, conn, _ok, err), method import_data (line 269) | defp import_data(%Dataset{} = dataset), do: ImportData.import_dataset_... method import_data (line 270) | defp import_data(nil), do: {:error, dgettext("backoffice", "Unable to ... method redirect_to_index (line 272) | defp redirect_to_index(conn), FILE: apps/transport/lib/transport_web/controllers/backoffice/gtfs_export_controller.ex class TransportWeb.Backoffice.GTFSExportController (line 1) | defmodule TransportWeb.Backoffice.GTFSExportController method export (line 5) | def export(%Plug.Conn{} = conn, _params) do method send_csv_data_chunk (line 29) | def send_csv_data_chunk(data, conn) do FILE: apps/transport/lib/transport_web/controllers/backoffice/notification_subscription_controller.ex class TransportWeb.Backoffice.NotificationSubscriptionController (line 1) | defmodule TransportWeb.Backoffice.NotificationSubscriptionController method create (line 11) | def create( method create (line 30) | def create(%Plug.Conn{} = conn, %{"contact_id" => contact_id, "redirec... method delete (line 55) | def delete(%Plug.Conn{} = conn, %{"id" => id, "redirect_location" => _... method delete_for_contact_and_dataset (line 63) | def delete_for_contact_and_dataset( method picked_reasons (line 76) | defp picked_reasons(%{} = params) do method reasons_for_contact_and_dataset (line 82) | defp reasons_for_contact_and_dataset(%{"contact_id" => contact_id, "da... method platform_wide_reasons_for_contact (line 88) | defp platform_wide_reasons_for_contact(%{"contact_id" => contact_id}) do method existing_reasons (line 94) | defp existing_reasons(%Ecto.Query{} = query) do method redirect_location (line 101) | defp redirect_location( method redirect_location (line 110) | defp redirect_location(%Plug.Conn{} = conn, %{"redirect_location" => "... method redirect_location (line 114) | defp redirect_location(%Plug.Conn{} = conn, %{"redirect_location" => "... FILE: apps/transport/lib/transport_web/controllers/backoffice/page_controller.ex class TransportWeb.Backoffice.PageController (line 1) | defmodule TransportWeb.Backoffice.PageController method end_dates_query (line 8) | def end_dates_query do method index (line 30) | def index(%Plug.Conn{} = conn, %{"filter" => "outdated"} = params) do method index (line 41) | def index(%Plug.Conn{} = conn, %{"filter" => "not_compliant"} = params... method index (line 52) | def index(%Plug.Conn{} = conn, %{"filter" => "licence_not_specified"} ... method index (line 60) | def index(%Plug.Conn{} = conn, %{"filter" => "multi_gtfs"} = params) do method index (line 76) | def index(%Plug.Conn{} = conn, %{"filter" => "resource_not_available"}... method index (line 91) | def index(%Plug.Conn{} = conn, %{"filter" => "resource_under_90_availa... method index (line 101) | def index(%Plug.Conn{} = conn, %{"filter" => "archived"} = params) do method index (line 108) | def index(%Plug.Conn{} = conn, %{"filter" => "hidden"} = params) do method index (line 115) | def index(%Plug.Conn{} = conn, %{"filter" => "inactive"} = params) do method index (line 122) | def index(%Plug.Conn{} = conn, params) do method get_regions_for_select (line 129) | defp get_regions_for_select do method new (line 133) | def new(%Plug.Conn{} = conn, _) do method edit (line 141) | def edit(%Plug.Conn{} = conn, %{"id" => dataset_id}) do method load_dataset (line 186) | def load_dataset(dataset_id) do method resource_formats (line 202) | defp resource_formats do method subscriptions_by_producer (line 210) | def subscriptions_by_producer(%DB.Dataset{} = dataset) do method contacts_in_org (line 219) | def contacts_in_org(%DB.Dataset{organization_object: %DB.Organization{... method contacts_in_org (line 223) | def contacts_in_org(_), do: [] method contacts_datalist (line 225) | defp contacts_datalist do method notifications_last_nb_days (line 231) | defp notifications_last_nb_days, do: 30 method notifications_sent (line 233) | def notifications_sent(nil), do: [] method notifications_sent (line 235) | def notifications_sent(%Dataset{id: dataset_id}) do method dataset_with_resource_under_90_availability (line 251) | def dataset_with_resource_under_90_availability do method render_index (line 269) | defp render_index(datasets, conn, params) do method get_order_by_from_params (line 292) | defp get_order_by_from_params(params) do method join_left_with_end_dates (line 311) | defp join_left_with_end_dates(%Ecto.Query{} = query) do method query_order_by_from_params (line 319) | defp query_order_by_from_params(query, params) do method clear_proxy_config (line 330) | def clear_proxy_config(%Plug.Conn{} = conn, _) do method download_datasets_csv (line 336) | def download_datasets_csv(%Plug.Conn{} = conn, _) do method download_resources_csv (line 353) | def download_resources_csv(%Plug.Conn{} = conn, _) do method datasets_query (line 370) | defp datasets_query do method resources_query (line 494) | defp resources_query do FILE: apps/transport/lib/transport_web/controllers/contact_controller.ex class TransportWeb.ContactController (line 1) | defmodule TransportWeb.ContactController method send_mail (line 16) | def send_mail( method send_mail (line 50) | def send_mail(conn, params) do method sanitize_inputs (line 58) | defp sanitize_inputs(map), do: Map.new(map, fn {k, v} -> {k, v |> Stri... FILE: apps/transport/lib/transport_web/controllers/conversion_controller.ex class TransportWeb.ConversionController (line 1) | defmodule TransportWeb.ConversionController method get (line 4) | def get(%Plug.Conn{} = conn, %{"resource_id" => resource_id, "convert_... method get (line 28) | def get(%Plug.Conn{} = conn, _) do method md5_hash (line 36) | def md5_hash(value) do method conversion_not_found (line 45) | defp conversion_not_found(%Plug.Conn{} = conn, explanation \\ "") do FILE: apps/transport/lib/transport_web/controllers/dataset_controller.ex class TransportWeb.DatasetController (line 1) | defmodule TransportWeb.DatasetController method index (line 13) | def index(%Plug.Conn{} = conn, params), do: list_datasets(conn, params... method list_datasets (line 25) | def list_datasets(%Plug.Conn{} = conn, %{} = params, count_by_region \... method assign_facets (line 48) | defp assign_facets(conn, index, dataset_ids, params) do method maybe_assign_regions (line 59) | defp maybe_assign_regions(conn, false, _index, _dataset_ids), do: conn method maybe_assign_regions (line 61) | defp maybe_assign_regions(conn, true, index, dataset_ids), method subtypes_facet (line 64) | defp subtypes_facet(index, dataset_ids, %{"type" => type} = _params) do method subtypes_facet (line 68) | defp subtypes_facet(_index, _dataset_ids, _params), do: %{all: 0, subt... method details (line 71) | def details(%Plug.Conn{} = conn, %{"slug" => slug_or_id}) do method assign_company (line 101) | defp assign_company(%Plug.Conn{} = conn, %DB.Dataset{legal_owner_compa... method assign_company (line 105) | defp assign_company(%Plug.Conn{} = conn, %DB.Dataset{legal_owner_compa... method assign_follows_dataset (line 109) | defp assign_follows_dataset( method assign_is_producer (line 116) | defp assign_is_producer( method assign_scores (line 133) | def assign_scores(%Plug.Conn{} = conn, %DB.Dataset{} = dataset) do method validators_to_use (line 169) | def validators_to_use, method resources_infos (line 172) | def resources_infos(dataset) do method gtfs_rt_entities (line 182) | def gtfs_rt_entities(%DB.Dataset{id: dataset_id, type: "public-transit... method gtfs_rt_entities (line 202) | def gtfs_rt_entities(%DB.Dataset{}), do: %{} method by_region (line 205) | def by_region(%Plug.Conn{} = conn, %{"region" => insee} = params) do method by_departement_insee (line 218) | def by_departement_insee(%Plug.Conn{} = conn, %{"departement" => insee... method by_epci (line 224) | def by_epci(%Plug.Conn{} = conn, %{"epci" => insee} = params) do method by_commune_insee (line 230) | def by_commune_insee(%Plug.Conn{} = conn, %{"commune" => insee} = para... method by_offer (line 241) | def by_offer(%Plug.Conn{} = conn, params) do method unavailabilities (line 245) | defp unavailabilities(%DB.Dataset{id: id, resources: resources}) do method by_territory (line 258) | defp by_territory(conn, territory, params, error_msg, count_by_region ... method error_page (line 275) | defp error_page(conn, msg) do method dataset_ids_for (line 283) | defp dataset_ids_for(index, params) do method order_and_refine (line 294) | defp order_and_refine(memory_ids, _index, params, db_only_params) do method apply_db_only_filters (line 303) | defp apply_db_only_filters(%Ecto.Query{} = query, db_only_params) do method preload_spatial_areas (line 312) | defp preload_spatial_areas(query) do method resources_history_csv (line 318) | def resources_history_csv(%Plug.Conn{} = conn, %{"dataset_id" => datas... method send_csv_response (line 356) | defp send_csv_response(chunks, filename, csv_header, %Plug.Conn{} = co... method send_csv_chunk (line 372) | defp send_csv_chunk(%Plug.Conn{} = conn, data) do method build_history_csv_row (line 376) | defp build_history_csv_row(csv_header, %DB.ResourceHistory{ method redirect_to_slug_or_404 (line 396) | defp redirect_to_slug_or_404(conn, slug_or_id) do method find_dataset_from_slug (line 409) | defp find_dataset_from_slug(%Plug.Conn{} = conn, slug) do method find_dataset_from_datagouv (line 421) | defp find_dataset_from_datagouv(%Plug.Conn{} = conn, slug) do method redirect_to_dataset (line 432) | defp redirect_to_dataset(conn, nil) do method redirect_to_dataset (line 439) | defp redirect_to_dataset(conn, %DB.Dataset{} = dataset) do method get_name (line 444) | defp get_name(DB.Offer, identifiant_offre) do method get_name (line 451) | defp get_name(territory, insee) do method empty_message_by_territory (line 461) | defp empty_message_by_territory(%{"epci" => insee}) do method empty_message_by_territory (line 465) | defp empty_message_by_territory(%{"region" => insee}) do method empty_message_by_territory (line 469) | defp empty_message_by_territory(%{"commune" => insee}) do method empty_message_by_territory (line 473) | defp empty_message_by_territory(_params), do: dgettext("page-shortlist... method put_empty_message (line 476) | defp put_empty_message(%Plug.Conn{:assigns => %{:datasets => %{:entrie... method put_empty_message (line 487) | defp put_empty_message(conn, _params), do: conn method put_category_custom_message (line 490) | defp put_category_custom_message(conn, params) do method put_page_title (line 499) | defp put_page_title(conn, %{"region" => insee} = params) do method put_page_title (line 514) | defp put_page_title(conn, %{"commune" => insee}) do method put_page_title (line 522) | defp put_page_title(conn, %{"departement" => insee}) do method put_page_title (line 530) | defp put_page_title(conn, %{"epci" => insee}), method put_page_title (line 538) | defp put_page_title(conn, %{"identifiant_offre" => identifiant_offre}), method put_page_title (line 549) | defp put_page_title(conn, %{"format" => format}), method put_page_title (line 560) | defp put_page_title(%Plug.Conn{request_path: request_path, query_param... method tile_matches_query? (line 581) | defp tile_matches_query?(%TransportWeb.PageController.Tile{link: link}... method put_dataset_heart_values (line 589) | defp put_dataset_heart_values(%Plug.Conn{assigns: %{current_user: curr... method dataset_heart_values (line 603) | def dataset_heart_values(%{"id" => datagouv_user_id} = _current_user, ... FILE: apps/transport/lib/transport_web/controllers/discussion_controller.ex class TransportWeb.DiscussionController (line 1) | defmodule TransportWeb.DiscussionController method post_discussion (line 9) | def post_discussion(%Plug.Conn{} = conn, %{ method post_answer (line 35) | def post_answer( method assign_dataset (line 61) | defp assign_dataset(%Plug.Conn{params: %{"dataset_slug" => dataset_slu... FILE: apps/transport/lib/transport_web/controllers/espace_producteur_controller.ex class TransportWeb.EspaceProducteurController (line 1) | defmodule TransportWeb.EspaceProducteurController method espace_producteur (line 24) | def espace_producteur(%Plug.Conn{} = conn, _params) do method datasets_checks (line 42) | defp datasets_checks(%Plug.Conn{assigns: %{datasets_for_user: {:error,... method datasets_checks (line 44) | defp datasets_checks(%Plug.Conn{assigns: %{datasets_for_user: datasets... method datasets_checks (line 48) | defp datasets_checks(%Plug.Conn{}), do: %{} method edit_dataset (line 50) | def edit_dataset(%Plug.Conn{assigns: %{dataset: %DB.Dataset{} = datase... method dataset_check (line 67) | defp dataset_check(%Plug.Conn{} = conn, %DB.Dataset{} = dataset) do method reuser_improved_data (line 71) | def reuser_improved_data(%Plug.Conn{assigns: %{dataset: %DB.Dataset{id... method upload_logo (line 86) | def upload_logo( method extension (line 106) | defp extension(filename), do: filename |> Path.extname() |> String.dow... method remove_custom_logo (line 108) | def remove_custom_logo(%Plug.Conn{assigns: %{dataset: %DB.Dataset{} = ... method proxy_statistics (line 127) | def proxy_statistics(%Plug.Conn{assigns: %{datasets: datasets}} = conn... method download_statistics (line 144) | def download_statistics(%Plug.Conn{assigns: %{datasets: datasets}} = c... method proxy_statistics_csv (line 160) | def proxy_statistics_csv(%Plug.Conn{assigns: %{datasets: datasets}} = ... method download_statistics_csv (line 176) | def download_statistics_csv(%Plug.Conn{assigns: %{datasets: datasets}}... method new_resource (line 189) | def new_resource(conn, %{"dataset_id" => _dataset_id}) do method edit_resource (line 197) | def edit_resource(conn, %{"dataset_id" => _dataset_id, "resource_datag... method delete_resource_confirmation (line 203) | def delete_resource_confirmation(%Plug.Conn{} = conn, %{ method delete_resource (line 211) | def delete_resource(%Plug.Conn{} = conn, %{ method post_file (line 252) | def post_file(conn, %{"resource_file" => %{"filename" => filename, "pa... method post_file (line 256) | def post_file(conn, %{"dataset_datagouv_id" => dataset_datagouv_id} = ... method discussions (line 304) | def discussions(%Plug.Conn{} = conn, _params) do method unanswered_discussions (line 315) | defp unanswered_discussions(%DB.Dataset{} = dataset) do method discussion_closed? (line 323) | def discussion_closed?(%{"closed" => closed}), do: not is_nil(closed) method answered_by_team_member (line 325) | def answered_by_team_member(%{"discussion" => comment_list}, team_memb... method team_member_ids (line 330) | defp team_member_ids(%DB.Dataset{organization_id: organization_id}) do method proxy_requests_stats_nb_days (line 340) | defp proxy_requests_stats_nb_days, do: 15 method formats_for_dataset (line 342) | def formats_for_dataset(%Plug.Conn{assigns: %{dataset: %DB.Dataset{typ... method find_db_datasets_or_redirect (line 352) | defp find_db_datasets_or_redirect(%Plug.Conn{} = conn, _options) do method find_db_dataset_or_redirect (line 366) | defp find_db_dataset_or_redirect(%Plug.Conn{path_params: %{"dataset_id... method find_db_dataset_and_api_dataset_or_redirect (line 379) | defp find_db_dataset_and_api_dataset_or_redirect( method find_db_dataset_and_api_dataset_and_resource_or_redirect (line 397) | defp find_db_dataset_and_api_dataset_and_resource_or_redirect( method find_dataset_for_user (line 422) | defp find_dataset_for_user(%Plug.Conn{} = conn, dataset_id_str) do method assign_datagouv_resource_from_dataset_payload (line 433) | defp assign_datagouv_resource_from_dataset_payload(dataset, resource_i... method assign_resource_from_dataset_payload (line 437) | defp assign_resource_from_dataset_payload(dataset, resource_id) do method datagouv_api_update_params (line 441) | defp datagouv_api_update_params(params) do FILE: apps/transport/lib/transport_web/controllers/explore_controller.ex class TransportWeb.ExploreController (line 1) | defmodule TransportWeb.ExploreController method index (line 15) | def index(%Plug.Conn{} = conn, params) do method vehicle_positions (line 26) | def vehicle_positions(conn, _params) do method national_map_disabled? (line 30) | defp national_map_disabled?, do: Application.fetch_env!(:transport, :d... method gtfs_stops (line 32) | def gtfs_stops(conn, _params) do method query_params (line 46) | defp query_params(params) do FILE: apps/transport/lib/transport_web/controllers/gbfs_analyzer_controller.ex class TransportWeb.GbfsAnalyzerController (line 1) | defmodule TransportWeb.GbfsAnalyzerController method index (line 13) | def index(conn, _params) do FILE: apps/transport/lib/transport_web/controllers/gbfs_to_geojson_controller.ex class TransportWeb.GbfsToGeojsonController (line 1) | defmodule TransportWeb.GbfsToGeojsonController method convert (line 7) | def convert(conn, %{"url" => gbfs_url} = params) do FILE: apps/transport/lib/transport_web/controllers/geojson_conversion_controller.ex class TransportWeb.GeojsonConversionController (line 1) | defmodule TransportWeb.GeojsonConversionController method index (line 4) | def index(%Plug.Conn{} = conn, _) do method convert (line 8) | def convert(%Plug.Conn{} = conn, %{"upload" => upload_params}) do method call_geojson_converter (line 25) | def call_geojson_converter(file_path) do FILE: apps/transport/lib/transport_web/controllers/landing_pages_controller.ex class TransportWeb.LandingPagesController (line 1) | defmodule TransportWeb.LandingPagesController method vls (line 4) | def vls(conn, _params) do method statistics (line 11) | defp statistics do method compute_statistics (line 15) | defp compute_statistics do FILE: apps/transport/lib/transport_web/controllers/page_controller.ex class TransportWeb.PageController (line 1) | defmodule TransportWeb.PageController method index (line 9) | def index(conn, _params) do method home_index_stats (line 17) | defp home_index_stats do method put_breaking_news (line 28) | defp put_breaking_news(conn, %{level: level, msg: msg}) do method put_breaking_news (line 33) | defp put_breaking_news(conn, %{}), do: conn method not_found (line 35) | def not_found(conn, _params) do method compute_home_index_stats (line 42) | def compute_home_index_stats do method login (line 54) | def login(conn, params) do method single_page (line 60) | defp single_page(conn, %{"content" => content, "menu" => menu}) do method single_page (line 67) | defp single_page(conn, %{"page" => page}) do method accessibility (line 75) | def accessibility(conn, _params) do method missions (line 79) | def missions(conn, _params) do method infos_producteurs (line 83) | def infos_producteurs(conn, _params) do method nouveautes (line 87) | def nouveautes(conn, _params) do method infos_reutilisateurs (line 98) | def infos_reutilisateurs(%Plug.Conn{} = conn, _params), do: render(con... method robots_txt (line 100) | def robots_txt(%Plug.Conn{} = conn, _params) do method robots_txt_content (line 107) | def robots_txt_content(:staging = _app_env) do method robots_txt_content (line 114) | def robots_txt_content(_app_env) do method security_txt (line 126) | def security_txt(conn, _params) do method sitemap_txt (line 138) | def sitemap_txt(%Plug.Conn{} = conn, _params) do method humans_txt (line 186) | def humans_txt(conn, _params) do method humans_txt_build_content (line 208) | defp humans_txt_build_content(authors, transport_details) do method aoms_with_dataset (line 230) | defp aoms_with_dataset do method count_aoms_with_dataset (line 239) | defp count_aoms_with_dataset, do: Repo.aggregate(aoms_with_dataset(), ... method population_with_dataset (line 241) | defp population_with_dataset, do: Repo.aggregate(aoms_with_dataset(), ... method population_totale (line 243) | defp population_totale, do: Repo.aggregate(AOM, :sum, :population) method percent_population (line 245) | defp percent_population, do: percent(population_with_dataset(), popula... method percent (line 247) | defp percent(_a, 0), do: 0 method percent (line 248) | defp percent(_a, nil), do: 0 method percent (line 249) | defp percent(a, b), do: Float.round(a / b * 100, 1) method count_regions (line 251) | defp count_regions do method home_tiles (line 267) | def home_tiles(conn) do method patch_vls_tiles (line 285) | defp patch_vls_tiles(%Tile{type: "vehicles-sharing"} = tile) do method patch_vls_tiles (line 289) | defp patch_vls_tiles(tile), do: tile method type_tile (line 291) | defp type_tile(conn, stats, type, options \\ []) do method count_transport_offers (line 302) | defp count_transport_offers do method generate_menu (line 309) | defp generate_menu(html) do method accumulate_tags (line 317) | defp accumulate_tags({tag, _attrs, children} = node, acc) do class Tile (line 255) | defmodule Tile FILE: apps/transport/lib/transport_web/controllers/pagination_helpers.ex class TransportWeb.PaginationHelpers (line 1) | defmodule TransportWeb.PaginationHelpers method make_pagination_config (line 7) | def make_pagination_config(params, page_size \\ 20) method make_pagination_config (line 9) | def make_pagination_config(%{"page" => page_number}, page_size) do method make_pagination_config (line 19) | def make_pagination_config(_, page_size), do: %Scrivener.Config{page_n... method pagination_links (line 21) | def pagination_links(_, %{total_pages: 1}), do: {:safe, ""} method pagination_links (line 23) | def pagination_links(conn, paginator) do method pagination_links (line 30) | def pagination_links(_, %{total_pages: 1}, _), do: {:safe, ""} method pagination_links (line 32) | def pagination_links(conn, paginator, opts) do method pagination_links (line 39) | def pagination_links(_, %{total_pages: 1}, _, _), do: {:safe, ""} method pagination_links (line 41) | def pagination_links(conn, paginator, args, opts) do method remove_empty_q (line 52) | defp remove_empty_q(args) do FILE: apps/transport/lib/transport_web/controllers/resource_controller.ex class TransportWeb.ResourceController (line 1) | defmodule TransportWeb.ResourceController method enabled_validators (line 12) | def enabled_validators, do: Transport.ValidatorsSelection.validators_f... method details (line 14) | def details(conn, %{"id" => id} = params) do method not_found (line 49) | defp not_found(conn) do method load_resource (line 56) | defp load_resource(id) do method gtfs_rt_entities (line 62) | def gtfs_rt_entities(%Resource{format: "gtfs-rt", id: id}) do method gtfs_rt_entities (line 72) | def gtfs_rt_entities(%Resource{}), do: nil method latest_validations_details (line 74) | def latest_validations_details(%Resource{format: "gtfs-rt", id: id}) do method latest_validations_details (line 99) | def latest_validations_details(%Resource{}), do: nil method gtfs_rt_feed (line 101) | defp gtfs_rt_feed(conn, %Resource{format: "gtfs-rt", url: url, id: id}... method gtfs_rt_feed (line 124) | defp gtfs_rt_feed(_conn, %Resource{}), do: nil method put_resource_flash (line 126) | defp put_resource_flash(conn, false = _dataset_active) do method put_resource_flash (line 137) | defp put_resource_flash(conn, _), do: conn method latest_validation (line 139) | defp latest_validation(%Resource{id: resource_id} = resource, latest_r... method render_details (line 162) | def render_details(conn, resource) do method render_gtfs_details (line 166) | defp render_gtfs_details(conn, params, resource, validation) do method build_gtfs_validation_details (line 185) | defp build_gtfs_validation_details(nil, _params), do: {{nil, nil, nil,... method build_gtfs_validation_details (line 187) | defp build_gtfs_validation_details(%{result: validation_result, metada... method render_netex_details (line 195) | defp render_netex_details(conn, params, resource, validation) do method download_validation_report? (line 221) | defp download_validation_report?(%DB.MultiValidation{binary_result: ni... method download_validation_report? (line 222) | defp download_validation_report?(_binary_result, %{"max_level" => "NoE... method download_validation_report? (line 223) | defp download_validation_report?(_binary_result, _max_severity), do: true method paginate_netex_results (line 227) | def paginate_netex_results({total_entries, issues}, config) do method build_netex_validation_details (line 246) | defp build_netex_validation_details(nil, _params, _pagination_config), method build_netex_validation_details (line 249) | defp build_netex_validation_details( method pick_netex_errors_template (line 272) | defp pick_netex_errors_template("0.2.1"), do: "_netex_validation_error... method pick_netex_errors_template (line 273) | defp pick_netex_errors_template("0.2.0"), do: "_netex_validation_error... method pick_netex_errors_template (line 274) | defp pick_netex_errors_template(_), do: "_netex_validation_errors_v0_1... method assign_base_resource_details (line 276) | defp assign_base_resource_details(conn, resource, validation_details) do method encoded_data_vis (line 289) | def encoded_data_vis(_, nil), do: nil method encoded_data_vis (line 291) | def encoded_data_vis(issue_type, validation) do method download (line 313) | def download(%Plug.Conn{assigns: %{original_method: "HEAD"}} = conn, %... method download (line 334) | def download(%Plug.Conn{method: "GET"} = conn, %{"id" => id}) do method download_validation_report (line 370) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, %{"id... method download_validation_report (line 387) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, %{"id... method download_validation_report (line 391) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, _) do method download_validation_report (line 431) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, _, _,... method log_download (line 435) | defp log_download(conn, resource_id, format) do method download_binary (line 443) | defp download_binary(conn, binary, content_type, filename) do method get_with_dataset (line 451) | defp get_with_dataset(resource_id) do method forward_head_response (line 457) | defp forward_head_response(%Plug.Conn{} = conn, %DB.Resource{} = resou... method log_and_redirect (line 467) | defp log_and_redirect(%Plug.Conn{} = conn, %DB.Resource{} = resource) do method log_download_request (line 478) | defp log_download_request(%DB.Resource{id: resource_id}, token) do method find_token (line 494) | defp find_token(nil), do: {:ok, nil} method find_token (line 496) | defp find_token(secret_hash) do method send_head_response (line 503) | defp send_head_response(%Plug.Conn{} = conn, status_code, headers) do method downcase_header (line 512) | defp downcase_header({h, v}), do: {String.downcase(h), v} FILE: apps/transport/lib/transport_web/controllers/reuse_controller.ex class TransportWeb.ReuseController (line 1) | defmodule TransportWeb.ReuseController method index (line 7) | def index(%Plug.Conn{} = conn, params) do FILE: apps/transport/lib/transport_web/controllers/reuser_space_controller.ex class TransportWeb.ReuserSpaceController (line 1) | defmodule TransportWeb.ReuserSpaceController method espace_reutilisateur (line 12) | def espace_reutilisateur(%Plug.Conn{assigns: %{contact: %DB.Contact{} ... method settings (line 26) | def settings(%Plug.Conn{assigns: %{contact: %DB.Contact{} = contact}} ... method delete_token (line 32) | def delete_token(%Plug.Conn{assigns: %{contact: %DB.Contact{} = contac... method default_token (line 45) | def default_token(%Plug.Conn{assigns: %{contact: %DB.Contact{id: conta... method new_token (line 61) | def new_token(%Plug.Conn{assigns: %{contact: %DB.Contact{} = contact}}... method create_new_token (line 68) | def create_new_token(%Plug.Conn{assigns: %{contact: %DB.Contact{} = co... method maybe_default_token (line 93) | defp maybe_default_token(%DB.Contact{} = contact) do method datasets_edit (line 111) | def datasets_edit( method existing_improved_data (line 126) | defp existing_improved_data(%DB.Dataset{id: dataset_id}, [%DB.Organiza... method existing_improved_data (line 132) | defp existing_improved_data(%DB.Dataset{}, _orgs), do: nil method add_improved_data (line 134) | def add_improved_data( method unfavorite (line 159) | def unfavorite( method hide_alert (line 184) | def hide_alert( method parse_optional_integer (line 202) | defp parse_optional_integer(nil), do: nil method parse_optional_integer (line 203) | defp parse_optional_integer(""), do: nil method delete_notification_subscriptions (line 206) | defp delete_notification_subscriptions(%DB.Contact{id: contact_id}, %D... method find_dataset_or_redirect (line 212) | defp find_dataset_or_redirect( method find_contact (line 240) | defp find_contact(%Plug.Conn{assigns: %{current_user: %{"id" => datago... method data_sharing_pilot? (line 254) | def data_sharing_pilot?(%DB.Dataset{} = dataset, %DB.Contact{} = conta... method data_sharing_eligible_orgs (line 262) | def data_sharing_eligible_orgs(%DB.Contact{organizations: organization... method config_value (line 270) | defp config_value(key) do method tokens (line 274) | defp tokens(%DB.Contact{id: contact_id} = contact) do FILE: apps/transport/lib/transport_web/controllers/session_controller.ex class TransportWeb.SessionController (line 1) | defmodule TransportWeb.SessionController method new (line 9) | def new(conn, _) do method create (line 13) | def create(conn, %{"code" => code}) do method create (line 41) | def create(conn, %{"error" => error, "error_description" => descriptio... method delete (line 50) | def delete(%Plug.Conn{} = conn, _) do method find_or_create_contact (line 57) | def find_or_create_contact( method create_token_for_contact (line 96) | defp create_token_for_contact(%DB.Contact{id: contact_id}) do method maybe_promote_producer_space (line 102) | defp maybe_promote_producer_space(%DB.Contact{id: contact_id}) do method find_contact_by_email_or_create (line 110) | defp find_contact_by_email_or_create(%{ method user_params (line 143) | defp user_params(%{} = user) do method save_current_user (line 150) | def save_current_user(%Plug.Conn{} = conn, %{} = user_params) do method user_params_for_session (line 157) | defp user_params_for_session(%{} = params) do method get_redirect_path (line 164) | defp get_redirect_path(%Plug.Conn{} = conn) do FILE: apps/transport/lib/transport_web/controllers/stats_controller.ex class TransportWeb.StatsController (line 1) | defmodule TransportWeb.StatsController method index (line 5) | def index(conn, _params) do method stats_public_transit (line 23) | def stats_public_transit(conn, _params) do method metabase_token (line 31) | defp metabase_token(dashboard_id) do FILE: apps/transport/lib/transport_web/controllers/validation_controller.ex class TransportWeb.ValidationController (line 1) | defmodule TransportWeb.ValidationController method validate (line 15) | def validate(%Plug.Conn{} = conn, %{"upload" => %{"url" => url, "type"... method validate (line 28) | def validate(%Plug.Conn{} = conn, %{"upload" => %{"url" => _, "feed_ur... method validate (line 66) | def validate(%Plug.Conn{} = conn, %{ method validate (line 72) | def validate(%Plug.Conn{} = conn, %{ method validate (line 95) | def validate(conn, _) do method validate_irve_statique (line 112) | defp validate_irve_statique(conn, file_path, filename, _size) do method irve_extension (line 128) | defp irve_extension(_), do: ".csv" method redirect_to_validation_show (line 130) | defp redirect_to_validation_show(conn, %MultiValidation{ method show (line 137) | def show(%Plug.Conn{} = conn, %{} = params) do method download_validation_report (line 217) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, %{} =... method download_validation_report (line 240) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, _) do method download_validation_report (line 278) | def download_validation_report(%Plug.Conn{method: "GET"} = conn, _, _) do method log_download (line 282) | defp log_download(conn, validation_id, format) do method download_binary (line 290) | defp download_binary(conn, binary, content_type, filename) do method pick_netex_template (line 298) | defp pick_netex_template("0.2.1"), do: "show_netex_v0_2_x.html" method pick_netex_template (line 299) | defp pick_netex_template("0.2.0"), do: "show_netex_v0_2_x.html" method pick_netex_template (line 300) | defp pick_netex_template(_), do: "show_netex_v0_1_0.html" method assign_base_validation_details (line 302) | defp assign_base_validation_details(conn, params) do method data_vis (line 309) | defp data_vis(%MultiValidation{} = validation, issue_type) do method filepath (line 320) | defp filepath(type) do method dispatch_validation_job (line 328) | defp dispatch_validation_job(%MultiValidation{id: id, oban_args: %{"ty... method dispatch_validation_job (line 352) | defp dispatch_validation_job(%MultiValidation{id: id, oban_args: oban_... method select_options (line 356) | def select_options do method valid_type? (line 365) | def valid_type?(type), do: type in (select_options() |> Enum.map(&elem... method stream_to_s3 (line 367) | defp stream_to_s3(local_filepath, path) do method build_oban_args (line 371) | defp build_oban_args(%{"url" => url, "feed_url" => feed_url, "type" =>... method build_oban_args (line 381) | defp build_oban_args(%{"url" => url, "type" => "gbfs"}) do method build_oban_args (line 389) | defp build_oban_args(%{"type" => "etalab/schema-irve-statique"}) do method build_oban_args (line 393) | defp build_oban_args(%{"type" => type}), do: build_oban_args(type) method build_oban_args (line 395) | defp build_oban_args(type) do method schema_type (line 415) | defp schema_type(schema_name), do: transport_schemas()[schema_name]["s... method transport_schemas (line 417) | defp transport_schemas, do: Transport.Schemas.Wrapper.transport_schemas() method not_found (line 419) | defp not_found(%Plug.Conn{} = conn) do method unauthorized (line 433) | defp unauthorized(%Plug.Conn{} = conn) do method bad_request (line 440) | defp bad_request(%Plug.Conn{} = conn) do method temporary_on_demand_validator_name (line 447) | def temporary_on_demand_validator_name, do: "on demand validation requ... method log_usage (line 449) | defp log_usage(%Plug.Conn{} = conn, _options) do FILE: apps/transport/lib/transport_web/endpoint.ex class TransportWeb.Endpoint (line 1) | defmodule TransportWeb.Endpoint FILE: apps/transport/lib/transport_web/gettext.ex class TransportWeb.Gettext (line 1) | defmodule TransportWeb.Gettext FILE: apps/transport/lib/transport_web/live/backoffice/cache_live.ex class TransportWeb.Backoffice.CacheLive (line 1) | defmodule TransportWeb.Backoffice.CacheLive method mount (line 12) | def mount(params, %{"current_user" => current_user} = _session, socket... method schedule_next_update_data (line 23) | defp schedule_next_update_data do method update_data (line 27) | defp update_data(socket) do method handle_info (line 35) | def handle_info(:update_data, socket) do method handle_params (line 41) | def handle_params(%{"filter_key_name" => filter_key_name}, _uri, socke... method handle_params (line 47) | def handle_params(_params, _uri, socket) do method handle_event (line 52) | def handle_event("delete_key", %{"key_name" => key_name}, socket) do method handle_event (line 58) | def handle_event("filter", %{"search_key_name" => %{"filter_key_name" ... method compute_stats (line 66) | defp compute_stats(socket) do method format_ttl (line 78) | def format_ttl(nil) do method cache_keys (line 86) | defp cache_keys(filter_key_name) do method last_janitor_execution (line 102) | defp last_janitor_execution do FILE: apps/transport/lib/transport_web/live/backoffice/custom_tags_live.ex class TransportWeb.CustomTagsLive (line 1) | defmodule TransportWeb.CustomTagsLive method render (line 6) | def render(assigns) do method tags_suggestions (line 43) | def tags_suggestions do method tags_documentation (line 54) | def tags_documentation do method mount (line 88) | def mount(socket) do method handle_event (line 97) | def handle_event("change", %{"form" => %{"tag_input" => tag}}, socket) do method handle_event (line 105) | def handle_event("add_tag", %{"key" => "Enter", "value" => tag}, socke... method handle_event (line 109) | def handle_event("add_tag", _, socket) do method handle_event (line 113) | def handle_event("remove_tag", %{"tag" => tag}, socket) do method add_tag (line 120) | defp add_tag(tag, socket) do method clear_input (line 135) | def clear_input(socket) do FILE: apps/transport/lib/transport_web/live/backoffice/data_import_batch_report_live.ex class TransportWeb.Backoffice.DataImportBatchReportLive (line 1) | defmodule TransportWeb.Backoffice.DataImportBatchReportLive method mount (line 9) | def mount(_params, %{"current_user" => current_user} = _session, socke... method assign_data (line 18) | def assign_data(socket) do method sort (line 43) | def sort(result) do method compute_stats (line 52) | def compute_stats(result) do method handle_event (line 59) | def handle_event("refresh", _, socket) do method handle_info (line 65) | def handle_info(:enqueue_job, socket) do method handle_info (line 86) | def handle_info(_, socket) do FILE: apps/transport/lib/transport_web/live/backoffice/dataset_subtype_live.ex class TransportWeb.DatasetSubtypeLive (line 1) | defmodule TransportWeb.DatasetSubtypeLive method render (line 5) | def render(assigns) do method update (line 38) | def update(assigns, socket) do method handle_event (line 57) | def handle_event("add_subtype", %{"key" => "Enter", "value" => value},... method handle_event (line 71) | def handle_event("add_subtype", _, socket) do method handle_event (line 75) | def handle_event("remove_subtype", %{"slug" => slug}, socket) do method clear_input (line 84) | def clear_input(socket) do method serialize (line 88) | def serialize(%DB.DatasetSubtype{} = subtype) do method serialize (line 95) | def serialize(%{parent_type: _, slug: _} = map), do: map method display (line 97) | def display(%{slug: slug}), do: slug method field_info (line 98) | def field_info(subtype, index), do: {"dataset_subtypes[#{index}]", sub... FILE: apps/transport/lib/transport_web/live/backoffice/declarative_spatial_areas_live.ex class TransportWeb.DeclarativeSpatialAreasLive (line 1) | defmodule TransportWeb.DeclarativeSpatialAreasLive method render (line 6) | def render(assigns) do method mount (line 109) | def mount(socket) do method update (line 123) | def update(assigns, socket) do method handle_event (line 127) | def handle_event("change", %{"form" => %{"spatial_areas_search_input" ... method handle_event (line 131) | def handle_event("change", %{"form" => %{"spatial_areas_search_input" ... method handle_event (line 144) | def handle_event("select_division", %{"id" => id}, socket) do method handle_event (line 154) | def handle_event("remove_division", %{"id" => id}, socket) do method clear_input (line 166) | def clear_input(socket) do method color_class (line 171) | defp color_class(%DB.AdministrativeDivision{type: :commune}), do: "green" method color_class (line 172) | defp color_class(%DB.AdministrativeDivision{type: :epci}), do: "blue" method color_class (line 173) | defp color_class(%DB.AdministrativeDivision{type: :departement}), do: ... method color_class (line 174) | defp color_class(%DB.AdministrativeDivision{type: :region}), do: "grey" method color_class (line 175) | defp color_class(%DB.AdministrativeDivision{type: :pays}), do: "dark-b... FILE: apps/transport/lib/transport_web/live/backoffice/edit_dataset_live.ex class TransportWeb.EditDatasetLive (line 1) | defmodule TransportWeb.EditDatasetLive method mount (line 9) | def mount( method form_params (line 53) | def form_params(%DB.Dataset{} = dataset) do method form_params (line 63) | def form_params(nil) do method get_legal_owners (line 73) | def get_legal_owners(%Dataset{} = dataset) do method get_legal_owners (line 85) | def get_legal_owners(_), do: [] method get_custom_tags (line 87) | def get_custom_tags(%Dataset{} = dataset) do method get_custom_tags (line 91) | def get_custom_tags(_), do: [] method get_offers (line 93) | def get_offers(%DB.Dataset{} = dataset) do method get_offers (line 97) | def get_offers(_), do: [] method get_declarative_spatial_areas (line 99) | def get_declarative_spatial_areas(%Dataset{} = dataset) do method get_declarative_spatial_areas (line 103) | def get_declarative_spatial_areas(_), do: [] method get_dataset_subtypes (line 105) | def get_dataset_subtypes(%Dataset{} = dataset) do method get_dataset_subtypes (line 109) | def get_dataset_subtypes(_), do: [] method get_company (line 115) | def get_company(_), do: nil method organization_types (line 117) | def organization_types, method handle_event (line 126) | def handle_event( method handle_event (line 146) | def handle_event("change_dataset", %{"_target" => _, "form" => %{} = f... method handle_event (line 153) | def handle_event("save", _, socket) do method handle_event (line 166) | def handle_event(_, _, socket) do method handle_info (line 171) | def handle_info({:updated_legal_owner, legal_owners}, socket) do method handle_info (line 175) | def handle_info({:updated_custom_tags, custom_tags}, socket) do method handle_info (line 179) | def handle_info({:updated_dataset_subtypes, dataset_subtypes}, socket) do method handle_info (line 183) | def handle_info({:updated_offers, offers}, socket) do method handle_info (line 194) | def handle_info({:updated_spatial_areas, updated_spatial_areas}, socke... method handle_info (line 204) | def handle_info({ref, datagouv_infos}, socket) do method handle_info (line 216) | def handle_info(_, socket) do method get_datagouv_infos (line 220) | def get_datagouv_infos(datagouv_url) do FILE: apps/transport/lib/transport_web/live/backoffice/email_preview_live.ex class TransportWeb.Backoffice.EmailPreviewLive (line 1) | defmodule TransportWeb.Backoffice.EmailPreviewLive method mount (line 10) | def mount(params, %{"current_user" => current_user, "csp_nonce_value" ... method emails (line 18) | def emails(%Phoenix.LiveView.Socket{assigns: %{contact: contact}} = so... method handle_event (line 108) | def handle_event("see_email", %{"key_name" => key_name}, socket) do method handle_event (line 114) | def handle_event("receive_email", %{"key_name" => key_name}, socket) do method handle_event (line 121) | def handle_event( method handle_event (line 131) | def handle_event("change", %{"search" => search}, %Phoenix.LiveView.So... method handle_params (line 136) | def handle_params(%{"search" => _} = params, _uri, socket) do method handle_params (line 140) | def handle_params(_params, _uri, socket) do method find_email (line 144) | defp find_email(%Phoenix.LiveView.Socket{assigns: %{emails: emails}}, ... method filter_config (line 148) | defp filter_config(%Phoenix.LiveView.Socket{} = socket, %{"search" => ... method filter_config (line 152) | defp filter_config( method filter_by_search (line 159) | defp filter_by_search(config, ""), do: config method filter_by_search (line 161) | defp filter_by_search(config, value) do method normalize (line 181) | def normalize(value) do FILE: apps/transport/lib/transport_web/live/backoffice/irve_dashboard_live.ex class TransportWeb.Backoffice.IRVEDashboardLive (line 1) | defmodule TransportWeb.Backoffice.IRVEDashboardLive method mount (line 9) | def mount(_params, %{"current_user" => current_user} = _session, socke... method must_list_resource? (line 22) | def must_list_resource?(resource, filtering_expression) do method assign_data (line 35) | def assign_data(socket) do method handle_event (line 43) | def handle_event("change_form", params, socket) do method handle_event (line 52) | def handle_event("analyze", _, socket) do method update_assigns (line 61) | def update_assigns({"progress", progress}, socket) do method update_assigns (line 67) | def update_assigns({"complete"}, socket) do method update_assigns (line 74) | def update_assigns({"failed"}, socket) do method handle_info (line 81) | def handle_info({:notification, :gossip, %{"type" => "analyze_irve"} =... method handle_info (line 99) | def handle_info({:notification, :gossip, _args}, socket) do method latest_report (line 103) | def latest_report do method maybe_reformat_report (line 112) | def maybe_reformat_report(nil), do: nil method maybe_reformat_report (line 114) | def maybe_reformat_report(report) do method sort_resources (line 121) | def sort_resources(resources) do method format_validity (line 126) | def format_validity(false, 200), do: {:safe, "KO current_user} = session, socket) do method ensure_admin_auth_or_redirect (line 43) | def ensure_admin_auth_or_redirect(socket, current_user, func) do method schedule_next_update_data (line 55) | defp schedule_next_update_data do method load_job (line 59) | defp load_job(job_id) do method last_jobs_query (line 67) | def last_jobs_query(n) do method count_jobs_query (line 75) | def count_jobs_query do method filter_worker (line 81) | def filter_worker(query, nil), do: query method filter_worker (line 82) | def filter_worker(query, ""), do: query method filter_worker (line 84) | def filter_worker(query, worker_filter) do method filter_states (line 89) | def filter_states(query, []) do method filter_states (line 93) | def filter_states(query, states) do method jobs_count (line 97) | def jobs_count(condition) do method oban_query (line 116) | def oban_query(query), do: Oban.config() |> Oban.Repo.all(query) method oban_one (line 118) | def oban_one(query), do: Oban.config() |> Oban.Repo.one(query) method last_jobs (line 120) | def last_jobs(n, condition), do: last_jobs_query(n) |> apply_condition... method count_jobs (line 122) | def count_jobs(condition), do: count_jobs_query() |> apply_condition(c... method apply_condition (line 124) | defp apply_condition(query, {worker, active_states}) do method update_data (line 130) | defp update_data(socket) do method maybe (line 146) | defp maybe(nil, _f), do: nil method maybe (line 147) | defp maybe(v, f), do: f.(v) method active_states (line 149) | defp active_states(assigns) do method format_datetime (line 155) | defp format_datetime(dt, locale) do method handle_info (line 161) | def handle_info(:update_data, socket) do method handle_params (line 167) | def handle_params(params, _uri, socket) do method handle_event (line 176) | def handle_event("filter", %{"_target" => ["reset"]} = _params, socket... method handle_event (line 180) | def handle_event("filter", params, socket) do method handle_event (line 184) | def handle_event("show-details", %{"job_id" => job_id} = _params, sock... method handle_event (line 194) | def handle_event("unload-details", %{} = _params, socket) do method sync_query_params (line 198) | defp sync_query_params(update, socket) do method format_1_hour_range (line 206) | def format_1_hour_range(from, locale) do method format_time (line 227) | defp format_time(dt) do method extract_params (line 231) | defp extract_params(params) do method flags (line 240) | defp flags(params, keys) do method flag (line 248) | defp flag(params, key) do method drop_defaults (line 256) | defp drop_defaults(updates) do FILE: apps/transport/lib/transport_web/live/backoffice/jobs_live.ex class TransportWeb.Backoffice.JobsLive (line 1) | defmodule TransportWeb.Backoffice.JobsLive method mount (line 13) | def mount(params, %{"current_user" => current_user} = _session, socket... method ensure_admin_auth_or_redirect (line 32) | def ensure_admin_auth_or_redirect(socket, current_user, func) do method schedule_next_update_data (line 44) | defp schedule_next_update_data do method last_jobs_query (line 48) | def last_jobs_query(state, n) do method count_jobs_query (line 57) | def count_jobs_query(state) do method filter_worker (line 64) | def filter_worker(query, nil), do: query method filter_worker (line 65) | def filter_worker(query, ""), do: query method filter_worker (line 67) | def filter_worker(query, worker_filter) do method jobs_count (line 72) | def jobs_count(worker) do method oban_query (line 91) | def oban_query(query), do: Oban.config() |> Oban.Repo.all(query) method last_jobs (line 93) | def last_jobs(state, n, worker), do: state |> last_jobs_query(n) |> fi... method count_jobs (line 95) | def count_jobs(state, worker), do: state |> count_jobs_query |> filter... method update_data (line 97) | defp update_data(socket, worker_filter \\ nil) do method handle_info (line 117) | def handle_info(:update_data, socket) do method handle_params (line 123) | def handle_params(%{"worker" => worker}, _uri, socket) do method handle_params (line 129) | def handle_params(_params, _uri, socket) do method handle_event (line 134) | def handle_event("filter", %{"worker" => worker}, socket) do method format_1_hour_range (line 142) | def format_1_hour_range(from) do method format_time (line 158) | defp format_time(dt) do FILE: apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex class JobsTableComponent (line 1) | defmodule JobsTableComponent method render (line 8) | def render(%{state: _, locale: _, jobs: _} = assigns) do method render (line 43) | def render(%{jobs: _, locale: _} = assigns) do method show_details (line 47) | defp show_details(%{supports_details: true, job_id: _} = assigns) do method show_details (line 53) | defp show_details(%{job_id: _} = assigns) do method timestamp (line 59) | defp timestamp(%{dt: _, locale: _} = assigns) do method format_time (line 65) | defp format_time(dt, locale) do method format_datetime (line 69) | defp format_datetime(dt, locale) do method compact_errors (line 73) | defp compact_errors(%{errors: _, locale: _} = assigns) do method split_errors (line 83) | defp split_errors(errors), do: Enum.map(errors, &split_error/1) method split_error (line 85) | defp split_error(error) do method extract_message (line 92) | defp extract_message(message) do FILE: apps/transport/lib/transport_web/live/backoffice/legal_owner_select_live.ex class TransportWeb.LegalOwnerSelectLive (line 1) | defmodule TransportWeb.LegalOwnerSelectLive method render (line 6) | def render(assigns) do method update (line 45) | def update(assigns, socket) do method handle_event (line 54) | def handle_event("change", %{"form" => %{"legal_owner_input" => value}... method handle_event (line 62) | def handle_event("add_tag", %{"key" => "Enter", "value" => value}, soc... method handle_event (line 66) | def handle_event("add_tag", _, socket) do method handle_event (line 70) | def handle_event("remove_tag", %{"owner-id" => owner_id, "owner-type" ... method add_owner (line 80) | def add_owner(value, socket) do method clear_input (line 95) | def clear_input(socket) do method field_info (line 99) | def field_info(owner, index) do method owner_label (line 103) | def owner_label(%{label: label, type: type}) do method owner_label (line 108) | def owner_label(%{type: type, id: id}, owners_list) do method color_class (line 114) | def color_class(%{type: "aom"}), do: "green" method color_class (line 115) | def color_class(%{type: "region"}), do: "blue" FILE: apps/transport/lib/transport_web/live/backoffice/offer_select_live.ex class TransportWeb.OfferSelectLive (line 1) | defmodule TransportWeb.OfferSelectLive method render (line 6) | def render(assigns) do method update (line 37) | def update(assigns, socket) do method handle_event (line 47) | def handle_event("add_offer", %{"key" => "Enter", "value" => value}, s... method handle_event (line 61) | def handle_event("add_offer", _, socket) do method handle_event (line 65) | def handle_event("remove_offer", %{"offer-id" => offer_id}, socket) do method clear_input (line 74) | def clear_input(socket) do method serialize (line 78) | def serialize(%DB.Offer{} = offer) do method display (line 87) | def display(%{label: label, nom_aom: nom_aom}), do: "#{label} (#{nom_a... method field_info (line 88) | def field_info(offer, index), do: {"offers[#{index}]", offer.id} FILE: apps/transport/lib/transport_web/live/backoffice/proxy_config_live.ex class TransportWeb.Backoffice.ProxyConfigLive (line 1) | defmodule TransportWeb.Backoffice.ProxyConfigLive method mount (line 19) | def mount(params, %{"current_user" => current_user, "csp_nonce_value" ... method schedule_next_update_data (line 31) | defp schedule_next_update_data do method init_state (line 35) | defp init_state(socket) do method update_data (line 39) | defp update_data(socket) do method handle_event (line 55) | def handle_event("change", %{"search" => search, "type" => type, "disk... method handle_event (line 61) | def handle_event("refresh_proxy_config", _value, socket) do method handle_params (line 68) | def handle_params(%{"search" => _, "type" => _, "disk" => _} = params,... method handle_params (line 72) | def handle_params(_params, _uri, socket) do method handle_info (line 77) | def handle_info(:update_data, socket) do method filter_config (line 82) | def filter_config(%Phoenix.LiveView.Socket{} = socket, %{"search" => s... method filter_config (line 88) | defp filter_config( method filter_by_type (line 100) | defp filter_by_type(config, ""), do: config method filter_by_type (line 102) | defp filter_by_type(config, value), method filter_by_search (line 105) | defp filter_by_search(config, ""), do: config method filter_by_search (line 107) | defp filter_by_search(config, value) do method filter_by_disk (line 113) | defp filter_by_disk(config, "true") do method filter_by_disk (line 119) | defp filter_by_disk(config, _), do: config method normalize (line 129) | def normalize(value) do method config_module (line 133) | defp config_module, do: Application.fetch_env!(:transport, :unlock_con... method get_proxy_configuration (line 139) | def get_proxy_configuration(proxy_base_url, stats_days) do method extract_config (line 156) | defp extract_config(proxy_base_url, %Unlock.Config.Item.Generic.HTTP{}... method extract_config (line 167) | defp extract_config(proxy_base_url, %Unlock.Config.Item.SIRI{} = resou... method extract_config (line 191) | defp extract_config(proxy_base_url, %Unlock.Config.Item.S3{} = resourc... method extract_config (line 202) | defp extract_config(proxy_base_url, %Unlock.Config.Item.GBFS{} = resou... method event_names (line 212) | defp event_names do method db_filter_for_event (line 217) | defp db_filter_for_event(type) do method add_stats (line 223) | defp add_stats(item, stats) do method add_cache_state (line 234) | defp add_cache_state(%{caching: "disk"} = item) do method add_cache_state (line 238) | defp add_cache_state(%{type: "S3"} = item) do method add_cache_state (line 242) | defp add_cache_state(item) do method add_cache_state_for_disk (line 260) | defp add_cache_state_for_disk(item) do method total_cache_sizes (line 278) | def total_cache_sizes(config) do method cache_ttl (line 293) | defp cache_ttl(cache_key) do FILE: apps/transport/lib/transport_web/live/backoffice/rate_limiter_live.ex class TransportWeb.Backoffice.RateLimiterLive (line 1) | defmodule TransportWeb.Backoffice.RateLimiterLive method mount (line 7) | def mount(_params, %{"current_user" => current_user} = _session, socke... method handle_info (line 27) | def handle_info(:update_data, socket) do method schedule_next_update_data (line 32) | defp schedule_next_update_data do method update_data (line 36) | defp update_data(socket) do method handle_event (line 44) | def handle_event("bail_ip_from_jail", %{"ip" => ip}, socket) do method env_value (line 49) | defp env_value(env_value), do: System.get_env(env_value) method env_value_to_int (line 51) | defp env_value_to_int(env_name) do method env_value_to_list (line 55) | defp env_value_to_list(env_name) do FILE: apps/transport/lib/transport_web/live/dataset_notifications_live.ex class TransportWeb.Live.DatasetNotificationsLive (line 1) | defmodule TransportWeb.Live.DatasetNotificationsLive method mount (line 10) | def mount(_params, %{"current_user" => %{"id" => user_id}, "locale" =>... method handle_event (line 30) | def handle_event("toggle" = event_name, %{} = params, %Phoenix.LiveVie... method subscriptions (line 34) | defp subscriptions(%DB.Dataset{} = dataset, %DB.Contact{} = contact) do FILE: apps/transport/lib/transport_web/live/discussions_live.ex class TransportWeb.DiscussionsLive (line 1) | defmodule TransportWeb.DiscussionsLive method render (line 8) | def render(assigns) do method mount (line 59) | def mount( method handle_info (line 84) | def handle_info({:fetch_data_gouv_discussions, %DB.Dataset{} = dataset... method discussion_should_be_closed? (line 120) | def discussion_should_be_closed?(%{"discussion" => comment_list}) do method get_datagouv_org_infos (line 133) | defp get_datagouv_org_infos(%DB.Dataset{} = dataset) do class TransportWeb.CountDiscussionsLive (line 148) | defmodule TransportWeb.CountDiscussionsLive method render (line 154) | def render(assigns) do method mount (line 160) | def mount(_, %{"dataset_datagouv_id" => dataset_datagouv_id}, socket) do method handle_info (line 169) | def handle_info({:count, count}, socket) do FILE: apps/transport/lib/transport_web/live/feedback_live.ex class TransportWeb.Live.FeedbackLive (line 1) | defmodule TransportWeb.Live.FeedbackLive method handle_event (line 67) | def handle_event("submit", session, socket) do method deliver_mail (line 73) | defp deliver_mail(feedback) do FILE: apps/transport/lib/transport_web/live/follow_dataset_live.ex class TransportWeb.Live.FollowDatasetLive (line 1) | defmodule TransportWeb.Live.FollowDatasetLive method render (line 18) | def render(assigns) do method mount (line 67) | def mount(_params, %{"current_user" => current_user, "dataset_id" => d... method set_computed_assigns (line 83) | defp set_computed_assigns(%Phoenix.LiveView.Socket{assigns: %{dataset:... method handle_event (line 95) | def handle_event("nudge_signup", _, %Phoenix.LiveView.Socket{} = socke... method handle_event (line 100) | def handle_event( method handle_info (line 116) | def handle_info(:hide_banner, %Phoenix.LiveView.Socket{} = socket) do method maybe_promote_reuser_space (line 120) | def maybe_promote_reuser_space(%DB.Contact{id: contact_id}) do method create_notification_subscriptions (line 133) | defp create_notification_subscriptions(%DB.Contact{id: contact_id} = c... method maybe_subscribe_to_daily_new_comments (line 152) | def maybe_subscribe_to_daily_new_comments(%DB.Contact{id: contact_id}) do method contact (line 177) | defp contact(nil = _current_user), do: nil method contact (line 179) | defp contact(%{"id" => datagouv_user_id} = _current_user), method producer? (line 183) | defp producer?(nil, _), do: false method producer? (line 185) | defp producer?(%DB.Contact{id: contact_id}, %DB.Dataset{organization_i... method heart_class (line 192) | defp heart_class(options) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_explain.ex class TransportWeb.GTFSDiffExplain (line 1) | defmodule TransportWeb.GTFSDiffExplain FILE: apps/transport/lib/transport_web/live/gtfs_diff_explain/explanations.ex class TransportWeb.GTFSDiffExplain.Explanations (line 1) | defmodule TransportWeb.GTFSDiffExplain.Explanations method diff_explanations (line 7) | def diff_explanations(diffs) do method explanation_update_stop_name (line 33) | defp explanation_update_stop_name( method explanation_update_stop_name (line 57) | defp explanation_update_stop_name(explanations, _), do: explanations method explanation_stop_wheelchair_access (line 84) | defp explanation_stop_wheelchair_access(explanations, _), do: explanat... method explanation_update_stop_position (line 86) | defp explanation_update_stop_position( method explanation_update_stop_position (line 125) | defp explanation_update_stop_position(explanations, _), do: explanations method explanation_route_color (line 127) | def explanation_route_color( method explanation_route_color (line 155) | def explanation_route_color(explanations, _), do: explanations method explanation_route_text_color (line 157) | def explanation_route_text_color( method explanation_route_text_color (line 185) | def explanation_route_text_color(explanations, _), do: explanations method different_colors? (line 187) | defp different_colors?(initial_color, new_color), do: String.downcase(... method explanation_route_short_name (line 189) | defp explanation_route_short_name( method explanation_route_short_name (line 213) | defp explanation_route_short_name(explanations, _), do: explanations method explanation_route_long_name (line 215) | defp explanation_route_long_name( method explanation_route_long_name (line 239) | defp explanation_route_long_name(explanations, _), do: explanations method explanation_route_type (line 241) | defp explanation_route_type( method explanation_route_type (line 265) | defp explanation_route_type(explanations, _), do: explanations method explanation_stop_location_type (line 267) | defp explanation_stop_location_type( method explanation_stop_location_type (line 291) | defp explanation_stop_location_type(explanations, _), do: explanations method explanation_agency_url (line 293) | defp explanation_agency_url( method explanation_agency_url (line 317) | defp explanation_agency_url(explanations, _), do: explanations method explanation_agency_fare_url (line 319) | defp explanation_agency_fare_url( method explanation_agency_fare_url (line 344) | defp explanation_agency_fare_url(explanations, _), do: explanations method explanation_agency_phone (line 346) | defp explanation_agency_phone( method explanation_agency_phone (line 370) | defp explanation_agency_phone(explanations, _), do: explanations method explanation_trip_headsign (line 372) | defp explanation_trip_headsign( method explanation_trip_headsign (line 396) | defp explanation_trip_headsign(explanations, _), do: explanations method curvilinear_abscissa (line 427) | def curvilinear_abscissa({lat1, lon1}, {lat2, lon2}) do method clamp (line 445) | defp clamp(number, minimum, maximum) do method deg2rad (line 451) | defp deg2rad(deg), do: deg * :math.pi() / 180.0 method try_jason_decode (line 453) | def try_jason_decode(""), do: nil method try_jason_decode (line 454) | def try_jason_decode(input), do: Jason.decode!(input) method parse_latitude_longitude (line 464) | def parse_latitude_longitude(value) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_explain/structural_changes.ex class TransportWeb.GTFSDiffExplain.StructuralChanges (line 1) | defmodule TransportWeb.GTFSDiffExplain.StructuralChanges method structural_changes (line 11) | def structural_changes(diffs) do method structural_change (line 23) | defp structural_change(%{"target" => "file", "action" => action}) do method structural_change (line 30) | defp structural_change(%{"target" => "column", "action" => action, "id... method merge_diffs (line 39) | defp merge_diffs({column_action, _} = new_diff, diffs) do method merge_diffs (line 55) | defp merge_diffs(new_diff, diffs) do method merge_existing_actions (line 59) | defp merge_existing_actions({column_action, columns1}, elem) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_explain/summary.ex class TransportWeb.GTFSDiffExplain.Summary (line 1) | defmodule TransportWeb.GTFSDiffExplain.Summary method diff_summary (line 33) | def diff_summary(diff) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live.ex class TransportWeb.Live.GTFSDiffSelectLive (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive method mount (line 16) | def mount(params, %{"locale" => locale} = session, socket) do method handle_params (line 28) | def handle_params(params, _uri, socket) do method do_handle_params (line 32) | defp do_handle_params(socket, params) do method handle_urls (line 36) | defp handle_urls(socket, %{"reference_url" => reference_url, "modified... method handle_urls (line 40) | defp handle_urls(socket, _) do method skip_uploads_and_diff_urls (line 44) | defp skip_uploads_and_diff_urls(socket, reference_url, modified_url) do method set_profile (line 51) | def set_profile(socket, %{"profile" => profile}) do method set_profile (line 55) | def set_profile(socket, _) do method handle_event (line 59) | def handle_event("validate", _params, socket) do method handle_event (line 63) | def handle_event("cancel-upload", %{"ref" => ref}, socket) do method handle_event (line 67) | def handle_event("switch-uploads", _, socket) do method handle_event (line 71) | def handle_event("clear-uploads", _, socket) do method handle_event (line 75) | def handle_event("start-over", _, socket) do method handle_event (line 79) | def handle_event("select-file", %{"file" => file}, socket) do method handle_event (line 83) | def handle_event("gtfs_diff", _, socket) do method handle_info (line 96) | def handle_info(:enqueue_job, socket) do method handle_info (line 102) | def handle_info({:generate_diff_summary, diff_file_url}, socket) do method handle_info (line 106) | def handle_info( method handle_info (line 114) | def handle_info(:timeout, socket) do method handle_info (line 126) | def handle_info(_, socket) do method trigger_job (line 130) | defp trigger_job(socket, gtfs_file_1, gtfs_file_2, profile) do method handle_job_notification (line 141) | def handle_job_notification(%{"started" => job_id}, job_id, socket) do method handle_job_notification (line 147) | def handle_job_notification(%{"running" => job_id, "log" => log}, job_... method handle_job_notification (line 152) | def handle_job_notification( method handle_job_notification (line 169) | def handle_job_notification(_, _, socket), do: socket method read_uploaded_files (line 171) | defp read_uploaded_files(socket) do method consume_uploaded_entry (line 175) | defp consume_uploaded_entry(%{path: path}, %Phoenix.LiveView.UploadEnt... method schedule_job (line 193) | defp schedule_job( method schedule_job (line 212) | defp schedule_job(args, profile) do method listen_job_notifications (line 225) | defp listen_job_notifications, do: Oban.Notifier.listen([:gossip]) method unlisten_job_notifications (line 227) | defp unlisten_job_notifications, do: Oban.Notifier.unlisten([:gossip]) method clean_slate (line 229) | defp clean_slate(socket) do method set_current_contact (line 238) | defp set_current_contact(socket, current_user) do method setup_uploads (line 250) | defp setup_uploads(socket) do method append_log (line 259) | defp append_log(socket, log) do method generate_diff_summary (line 263) | defp generate_diff_summary(diff_file_url) do method handle_diff_summary (line 267) | defp handle_diff_summary(socket, diff_file_url) do method present_results (line 281) | defp present_results(socket, diff_file_url, context) do method update_results_with_diff (line 292) | defp update_results_with_diff(socket, diff) do method schedule_timeout (line 304) | defp schedule_timeout do method on_timeout (line 308) | defp on_timeout(socket) do method timeout_msg (line 323) | def timeout_msg do method scroll_to_steps (line 329) | defp scroll_to_steps(socket) do method update_many (line 333) | defp update_many(socket, key, fns) do method sequence (line 337) | defp sequence(fns) do method set (line 341) | defp set(key, value) do method stream_to_s3 (line 345) | defp stream_to_s3(file_path, path) do method set_selected_file (line 349) | defp set_selected_file(socket, file) do method switch_uploads (line 353) | defp switch_uploads(socket) do method clear_uploads (line 361) | defp clear_uploads(socket) do method drop_empty (line 366) | defp drop_empty([]), do: nil method drop_empty (line 367) | defp drop_empty(otherwise), do: otherwise FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/analysis.ex class TransportWeb.Live.GTFSDiffSelectLive.Analysis (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Analysis method analysis_step (line 9) | def analysis_step(%{diff_logs: _, error_msg: _} = assigns) do method action_bar (line 28) | defp action_bar(%{} = assigns) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/differences.ex class TransportWeb.Live.GTFSDiffSelectLive.Differences (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Differences method differences (line 10) | def differences( method structural_differences (line 43) | defp structural_differences(%{structural_changes: structural_changes, ... method file_difference? (line 79) | defp file_difference?(:added_file), do: true method file_difference? (line 80) | defp file_difference?(:deleted_file), do: true method file_difference? (line 81) | defp file_difference?(_), do: false method file_differences (line 83) | defp file_differences( method pick_file_message (line 99) | defp pick_file_message(:added_file, 0), do: dgettext("gtfs-diff", "fil... method pick_file_message (line 101) | defp pick_file_message(:added_file, count), method pick_file_message (line 110) | defp pick_file_message(:deleted_file, 0), do: dgettext("gtfs-diff", "f... method pick_file_message (line 112) | defp pick_file_message(:deleted_file, count), method column_difference? (line 121) | defp column_difference?({:added_columns, _}), do: true method column_difference? (line 122) | defp column_difference?({:deleted_columns, _}), do: true method column_difference? (line 123) | defp column_difference?(_), do: false method columns_differences (line 125) | defp columns_differences(%{file_differences: _, column_differences: _,... method columns_list (line 143) | defp columns_list(%{column_differences: _, selected_file: _} = assigns... method count_column_differences (line 156) | defp count_column_differences(column_differences, criteria) do method pick_column_message (line 160) | defp pick_column_message(:added_columns, count), method pick_column_message (line 163) | defp pick_column_message(:deleted_columns, count), method pick_symbol (line 166) | defp pick_symbol(:added_columns), do: "symbol fa fa-square-plus green" method pick_symbol (line 167) | defp pick_symbol(:added_file), do: "symbol fa fa-square-plus green" method pick_symbol (line 168) | defp pick_symbol(:deleted_columns), do: "symbol fa fa-square-minus red" method pick_symbol (line 169) | defp pick_symbol(:deleted_file), do: "symbol fa fa-square-minus red" method diff_summaries_for_file (line 171) | defp diff_summaries_for_file(%{selected_file: _, diff_summary: _, prof... method row_changes? (line 200) | defp row_changes?(diff_summary, selected_file) do method diff_summary_for_file (line 212) | defp diff_summary_for_file(%{summary: _, selected_file: _, translation... method partial_difference_warning (line 222) | defp partial_difference_warning(%{} = assigns) do method diff_natures (line 233) | defp diff_natures do method detailed_explanations (line 241) | defp detailed_explanations(%{file: _, explanations: _, explanation_typ... method attribute_type (line 271) | defp attribute_type("routes.txt", "route_color"), do: :color method attribute_type (line 272) | defp attribute_type("routes.txt", "route_text_color"), do: :color method attribute_type (line 273) | defp attribute_type("routes.txt", "route_type"), do: :route_type method attribute_type (line 274) | defp attribute_type("stops.txt", "location_type"), do: :stop_location_... method attribute_type (line 275) | defp attribute_type(_, _), do: :text method attribute_value (line 277) | defp attribute_value(%{type: :color, value: "#"} = assigns) do method attribute_value (line 283) | defp attribute_value(%{type: :color, value: _} = assigns) do method attribute_value (line 294) | defp attribute_value(%{type: :route_type, value: _} = assigns) do method attribute_value (line 300) | defp attribute_value(%{type: :stop_location_type, value: _} = assigns) do method attribute_value (line 306) | defp attribute_value(%{type: _, value: ""} = assigns) do method attribute_value (line 312) | defp attribute_value(%{type: _, value: _} = assigns) do method translate_explanation_type (line 318) | defp translate_explanation_type("stops.txt", "stop_name"), do: dgettex... method translate_explanation_type (line 319) | defp translate_explanation_type("stops.txt", "stop_position"), do: dge... method translate_explanation_type (line 320) | defp translate_explanation_type("stops.txt", "wheelchair_boarding"), d... method translate_explanation_type (line 321) | defp translate_explanation_type("stops.txt", "location_type"), do: dge... method translate_explanation_type (line 322) | defp translate_explanation_type("routes.txt", "route_color"), do: dget... method translate_explanation_type (line 323) | defp translate_explanation_type("routes.txt", "route_text_color"), do:... method translate_explanation_type (line 324) | defp translate_explanation_type("routes.txt", "route_short_name"), do:... method translate_explanation_type (line 325) | defp translate_explanation_type("routes.txt", "route_long_name"), do: ... method translate_explanation_type (line 326) | defp translate_explanation_type("routes.txt", "route_type"), do: dgett... method translate_explanation_type (line 327) | defp translate_explanation_type("agency.txt", "agency_url"), do: dgett... method translate_explanation_type (line 328) | defp translate_explanation_type("trips.txt", "trip_headsign"), do: dge... method translate_explanation_type (line 329) | defp translate_explanation_type(_, unknown), do: dgettext("gtfs-diff",... method translate_explanation_details (line 331) | defp translate_explanation_details("stops.txt", "stop_name"), method translate_explanation_details (line 340) | defp translate_explanation_details("stops.txt", "stop_position"), method translate_explanation_details (line 349) | defp translate_explanation_details("stops.txt", "wheelchair_boarding"), method translate_explanation_details (line 355) | defp translate_explanation_details("stops.txt", "location_type"), method translate_explanation_details (line 360) | defp translate_explanation_details("routes.txt", "route_color"), method translate_explanation_details (line 369) | defp translate_explanation_details("routes.txt", "route_text_color"), method translate_explanation_details (line 378) | defp translate_explanation_details("routes.txt", "route_short_name"), method translate_explanation_details (line 387) | defp translate_explanation_details("routes.txt", "route_long_name"), method translate_explanation_details (line 396) | defp translate_explanation_details("routes.txt", "route_type"), method translate_explanation_details (line 402) | defp translate_explanation_details("agency.txt", "agency_url"), method translate_explanation_details (line 408) | defp translate_explanation_details("trips.txt", "trip_headsign"), method translate_explanation_details (line 417) | defp translate_explanation_details(_, _), do: nil method compared_attributes (line 419) | defp compared_attributes(attributes) do method translate_target (line 445) | def translate_target(target, n) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/gtfs_specification.ex class TransportWeb.Live.GTFSDiffSelectLive.GTFSSpecification (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.GTFSSpecification method standard_column? (line 227) | def standard_column?(file, column), do: column in Map.get(@standard_co... method file_description (line 229) | def file_description(%{selected_file: _} = assigns) do method description_text (line 242) | defp description_text("agency.txt"), do: dgettext("gtfs-file-descripti... method description_text (line 243) | defp description_text("areas.txt"), do: dgettext("gtfs-file-descriptio... method description_text (line 244) | defp description_text("attributions.txt"), do: dgettext("gtfs-file-des... method description_text (line 245) | defp description_text("booking_rules.txt"), do: dgettext("gtfs-file-de... method description_text (line 246) | defp description_text("calendar.txt"), do: dgettext("gtfs-file-descrip... method description_text (line 247) | defp description_text("calendar_dates.txt"), do: dgettext("gtfs-file-d... method description_text (line 248) | defp description_text("fare_attributes.txt"), do: dgettext("gtfs-file-... method description_text (line 249) | defp description_text("fare_leg_join_rules.txt"), do: dgettext("gtfs-f... method description_text (line 250) | defp description_text("fare_leg_rules.txt"), do: dgettext("gtfs-file-d... method description_text (line 251) | defp description_text("fare_media.txt"), do: dgettext("gtfs-file-descr... method description_text (line 252) | defp description_text("fare_products.txt"), do: dgettext("gtfs-file-de... method description_text (line 253) | defp description_text("fare_rules.txt"), do: dgettext("gtfs-file-descr... method description_text (line 254) | defp description_text("fare_transfer_rules.txt"), do: dgettext("gtfs-f... method description_text (line 255) | defp description_text("feed_info.txt"), do: dgettext("gtfs-file-descri... method description_text (line 256) | defp description_text("frequencies.txt"), do: dgettext("gtfs-file-desc... method description_text (line 257) | defp description_text("levels.txt"), do: dgettext("gtfs-file-descripti... method description_text (line 258) | defp description_text("location_group_stops.txt"), do: dgettext("gtfs-... method description_text (line 259) | defp description_text("location_groups.txt"), do: dgettext("gtfs-file-... method description_text (line 260) | defp description_text("networks.txt"), do: dgettext("gtfs-file-descrip... method description_text (line 261) | defp description_text("pathways.txt"), do: dgettext("gtfs-file-descrip... method description_text (line 262) | defp description_text("rider_categories.txt"), do: dgettext("gtfs-file... method description_text (line 263) | defp description_text("route_networks.txt"), do: dgettext("gtfs-file-d... method description_text (line 264) | defp description_text("routes.txt"), do: dgettext("gtfs-file-descripti... method description_text (line 265) | defp description_text("shapes.txt"), do: dgettext("gtfs-file-descripti... method description_text (line 266) | defp description_text("stop_areas.txt"), do: dgettext("gtfs-file-descr... method description_text (line 267) | defp description_text("stop_times.txt"), do: dgettext("gtfs-file-descr... method description_text (line 268) | defp description_text("stops.txt"), do: dgettext("gtfs-file-descriptio... method description_text (line 269) | defp description_text("timeframes.txt"), do: dgettext("gtfs-file-descr... method description_text (line 270) | defp description_text("transfers.txt"), do: dgettext("gtfs-file-descri... method description_text (line 271) | defp description_text("translations.txt"), do: dgettext("gtfs-file-des... method description_text (line 272) | defp description_text("trips.txt"), do: dgettext("gtfs-file-descriptio... method description_text (line 274) | defp description_text(selected_file), method specification_url (line 277) | defp specification_url(file) do method route_type_short_description (line 281) | def route_type_short_description("0"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 282) | def route_type_short_description("1"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 283) | def route_type_short_description("2"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 284) | def route_type_short_description("3"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 285) | def route_type_short_description("4"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 286) | def route_type_short_description("5"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 287) | def route_type_short_description("6"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 288) | def route_type_short_description("7"), do: dgettext("gtfs-file-descrip... method route_type_short_description (line 289) | def route_type_short_description("11"), do: dgettext("gtfs-file-descri... method route_type_short_description (line 290) | def route_type_short_description("12"), do: dgettext("gtfs-file-descri... method route_type_short_description (line 291) | def route_type_short_description(_unexpected), do: dgettext("gtfs-file... method stop_location_type_short_description (line 293) | def stop_location_type_short_description("0"), do: dgettext("gtfs-file... method stop_location_type_short_description (line 294) | def stop_location_type_short_description("1"), do: dgettext("gtfs-file... method stop_location_type_short_description (line 295) | def stop_location_type_short_description("2"), do: dgettext("gtfs-file... method stop_location_type_short_description (line 296) | def stop_location_type_short_description("3"), do: dgettext("gtfs-file... method stop_location_type_short_description (line 297) | def stop_location_type_short_description("4"), do: dgettext("gtfs-file... method stop_location_type_short_description (line 298) | def stop_location_type_short_description(_unexpected), do: dgettext("g... FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/results.ex class TransportWeb.Live.GTFSDiffSelectLive.Results (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Results method results_step (line 31) | def results_step(%{error_msg: _, profile: _, results: results} = assig... method pick_selected_file (line 54) | defp pick_selected_file([]), do: nil method pick_selected_file (line 55) | defp pick_selected_file(files_with_changes), do: Kernel.hd(files_with_... method files_with_changes (line 57) | defp files_with_changes(nil), do: [] method files_with_changes (line 59) | defp files_with_changes(diff_summary) do method preferred_files_order (line 68) | defp preferred_files_order(filename) do method inner (line 72) | defp inner( method diff_summaries (line 133) | defp diff_summaries( method navigation (line 157) | defp navigation(%{files_with_changes: _, selected_file: _} = assigns) do method select_file_navigation_link (line 167) | defp select_file_navigation_link(%{file: _, selected_file: _} = assign... method display_context (line 186) | defp display_context(diff_summary, %{ method display_context (line 197) | defp display_context(diff_summary, %{"gtfs_url_1" => url_1, "gtfs_url_... method similar_files (line 205) | defp similar_files(file_1, file_2) do method different_files (line 214) | defp different_files(file_1, file_2) do method similar_urls (line 223) | defp similar_urls(url_1, url_2) do method different_urls (line 232) | defp different_urls(url_1, url_2) do method validation_error (line 241) | defp validation_error(%{error_msg: _} = assigns) do method translate_error (line 253) | defp translate_error(":enomem"), do: dgettext("gtfs-diff", "not enough... method translate_error (line 254) | defp translate_error(e), do: "#{e}" FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/setup.ex class TransportWeb.Live.GTFSDiffSelectLive.Setup (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Setup method setup_step (line 10) | def setup_step(%{uploads: _} = assigns) do method action_bar (line 24) | def action_bar(%{uploads: _} = assigns) do method invalid_uploads? (line 44) | def invalid_uploads?(%{entries: gtfs}) do method upload_drop_zone (line 48) | defp upload_drop_zone(%{uploads: _} = assigns) do method uploaded_files (line 62) | defp uploaded_files(%{uploads: _} = assigns) do method upload (line 75) | defp upload(%{entry: nil, index: _, uploads: _} = assigns) do method upload (line 86) | defp upload(%{entry: entry, index: _, uploads: uploads} = assigns) do method upload_global_error (line 133) | defp upload_global_error(%{error: _, uploads: _} = assigns) do method discarded_files (line 143) | defp discarded_files(%{uploads: _} = assigns) do method discarded_file (line 152) | defp discarded_file(%{entry: _, index: _} = assigns) do method error_to_string (line 177) | def error_to_string(:too_many_files), do: dgettext("gtfs-diff", "You m... method error_to_string (line 178) | def error_to_string(:not_accepted), do: dgettext("gtfs-diff", "You hav... method error_to_string (line 180) | def error_to_string(:too_large), method upload_title (line 184) | defp upload_title(index) do method upload_switch (line 192) | defp upload_switch(%{uploads: _} = assigns) do method icon (line 209) | defp icon(%{title: _, class: _} = assigns) do method upload_entries (line 215) | defp upload_entries(uploads) do FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/shared.ex class TransportWeb.Live.GTFSDiffSelectLive.Shared (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Shared method max_file_size_mb (line 2) | def max_file_size_mb, do: 20 FILE: apps/transport/lib/transport_web/live/gtfs_diff_select_live/steps.ex class TransportWeb.Live.GTFSDiffSelectLive.Steps (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLive.Steps method steps (line 9) | def steps(%{current_step: _} = assigns) do method step_completion (line 27) | defp step_completion(current_step, expected_step) do method step_progression (line 35) | defp step_progression(step) do FILE: apps/transport/lib/transport_web/live/notifications_live.ex class TransportWeb.Live.NotificationsLive (line 1) | defmodule TransportWeb.Live.NotificationsLive method mount (line 9) | def mount( method mount (line 41) | def mount( method subscribed_platform_wide_reasons (line 116) | defp subscribed_platform_wide_reasons(%DB.Contact{id: contact_id}) do method notification_subscriptions_for_datasets (line 126) | def notification_subscriptions_for_datasets(%Phoenix.LiveView.Socket{a... method notification_subscriptions_for_datasets (line 130) | def notification_subscriptions_for_datasets(datasets, current_contact,... method notification_subscriptions_for_datasets (line 144) | def notification_subscriptions_for_datasets(datasets, current_contact,... method toggle_subscription (line 164) | defp toggle_subscription( method toggle_subscription (line 175) | defp toggle_subscription( method toggle_platform_wide_subscription (line 191) | defp toggle_platform_wide_subscription( method toggle_platform_wide_subscription (line 200) | defp toggle_platform_wide_subscription( method toggle_all_subscriptions (line 211) | defp toggle_all_subscriptions( method toggle_all_subscriptions (line 230) | defp toggle_all_subscriptions( method subscriptions_empty_map (line 242) | defp subscriptions_empty_map(role, datasets) do method all_notifications_enabled? (line 251) | defp all_notifications_enabled?(subscriptions) do method available_reasons (line 259) | def available_reasons(:reuser) do method available_reasons (line 280) | def available_reasons(:producer) do FILE: apps/transport/lib/transport_web/live/on_demand_validation_live.ex class TransportWeb.Live.OnDemandValidationLive (line 1) | defmodule TransportWeb.Live.OnDemandValidationLive method mount (line 13) | def mount( method update_data (line 23) | defp update_data(socket) do method handle_info (line 47) | def handle_info(:update_data, socket) do method schedule_next_update_data (line 51) | defp schedule_next_update_data do method final_state? (line 55) | defp final_state?(socket) do method gtfs_or_netex_validation_completed? (line 62) | defp gtfs_or_netex_validation_completed?(socket) do method socket_value (line 72) | defp socket_value(%Phoenix.LiveView.Socket{assigns: assigns}, key), do... method format_datetime (line 74) | def format_datetime(dt, locale) do method maybe_gtfs_rt_feed (line 78) | defp maybe_gtfs_rt_feed( method maybe_gtfs_rt_feed (line 105) | defp maybe_gtfs_rt_feed(_, _), do: nil FILE: apps/transport/lib/transport_web/live/on_demand_validation_select_live.ex class TransportWeb.Live.OnDemandValidationSelectLive (line 1) | defmodule TransportWeb.Live.OnDemandValidationSelectLive method mount (line 16) | def mount(_params, %{"locale" => locale} = _session, socket) do method handle_params (line 57) | def handle_params(params, _uri, socket) do method self_path (line 61) | def self_path(socket) do method socket_data (line 69) | def socket_data(socket, data) do method determine_input_type (line 76) | def determine_input_type(_), do: "file" method handle_event (line 78) | def handle_event("form_changed", %{"upload" => params, "_target" => ta... method handle_event (line 87) | def handle_event("select_tile", %{"tile" => tile}, socket) do method handle_event (line 92) | def handle_event("select_subtile", %{"tile" => tile}, socket) do method icon (line 97) | def icon(type) do method params_to_assigns (line 118) | def params_to_assigns(params) do FILE: apps/transport/lib/transport_web/live/proxy_requests_count_live.ex class TransportWeb.ProxyRequestsCountLive (line 1) | defmodule TransportWeb.ProxyRequestsCountLive method render (line 10) | def render(assigns) do method mount (line 33) | def mount(_, %{"locale" => locale}, socket) do method handle_info (line 38) | def handle_info(:update_data, socket) do FILE: apps/transport/lib/transport_web/live/reuses_live.ex class TransportWeb.ReusesLive (line 1) | defmodule TransportWeb.ReusesLive method render (line 9) | def render(assigns) do method mount (line 52) | def mount( method owner (line 75) | def owner(%{"organization" => %{"name" => name}}), do: ~s| %{"name" => name}}), do: ~s| dataset_datagouv_id, "locale" ... method handle_info (line 125) | def handle_info({:count, count}, socket) do FILE: apps/transport/lib/transport_web/live/send_now_on_nap_notification_view.ex class TransportWeb.Live.SendNowOnNAPNotificationView (line 1) | defmodule TransportWeb.Live.SendNowOnNAPNotificationView method render (line 8) | def render(assigns) do method mount (line 16) | def mount(_params, %{"dataset_id" => dataset_id, "locale" => locale, "... method display_button? (line 28) | defp display_button?(dataset_id, sent_reasons) do method recently_added? (line 34) | defp recently_added?(%DB.Dataset{inserted_at: nil}), do: false method recently_added? (line 36) | defp recently_added?(%DB.Dataset{inserted_at: %DateTime{} = inserted_a... method handle_event (line 40) | def handle_event("dispatch_job", _value, socket) do method handle_info (line 45) | def handle_info({:dispatch, dataset_id}, socket) do method handle_info (line 56) | def handle_info({:wait_for_completion, job_id}, socket) do method assign_step (line 69) | defp assign_step(socket, step) do method button_texts (line 78) | defp button_texts(step) do method button_classes (line 89) | defp button_classes(step) do FILE: apps/transport/lib/transport_web/live/siri_querier_live.ex class TransportWeb.Live.SIRIQuerierLive (line 1) | defmodule TransportWeb.Live.SIRIQuerierLive method mount (line 29) | def mount(_params, %{"locale" => locale} = _session, socket) do method base_assigns (line 34) | def base_assigns do method extract_allowed_parameters (line 50) | def extract_allowed_parameters(params) do method handle_params (line 61) | def handle_params(params, _uri, socket) do method handle_event (line 67) | def handle_event("ignore", _params, socket), do: {:noreply, socket} method handle_event (line 69) | def handle_event("generate_query", _params, socket) do method handle_event (line 79) | def handle_event("execute_query", _params, socket) do method handle_event (line 115) | def handle_event("change_form", params, socket) do method self_path (line 127) | def self_path(socket) do method build_timestamp (line 139) | def build_timestamp, do: DateTime.utc_now() |> DateTime.to_iso8601() method build_message_id (line 140) | def build_message_id, do: "Test::Message::#{Ecto.UUID.generate()}" method generate_query (line 142) | defp generate_query(%Phoenix.LiveView.Socket{assigns: assigns}) do FILE: apps/transport/lib/transport_web/live/start_consolidate_job_view.ex class TransportWeb.Live.SendConsolidateJobView (line 1) | defmodule TransportWeb.Live.SendConsolidateJobView method render (line 6) | def render(assigns) do method mount (line 14) | def mount( method handle_event (line 37) | def handle_event("dispatch_job", _value, socket) do method handle_info (line 42) | def handle_info(:dispatch, %Phoenix.LiveView.Socket{assigns: %{job_arg... method handle_info (line 53) | def handle_info({:wait_for_completion, job_id}, socket) do method handle_info (line 68) | def handle_info(:reset, socket) do method assign_step (line 72) | defp assign_step(%Phoenix.LiveView.Socket{} = socket, step) do method button_texts (line 81) | defp button_texts(%Phoenix.LiveView.Socket{assigns: %{button_texts: bu... method button_classes (line 89) | defp button_classes(%Phoenix.LiveView.Socket{assigns: %{button_default... FILE: apps/transport/lib/transport_web/live/user_space_datasets_live.ex class TransportWeb.Live.UserSpaceDatasetsLive (line 1) | defmodule TransportWeb.Live.UserSpaceDatasetsLive method render (line 14) | def render(assigns) do method mount (line 93) | def mount( method select_options (line 120) | defp select_options(datasets) do method handle_event (line 129) | def handle_event("change", params, %Phoenix.LiveView.Socket{} = socket... method filter_datasets (line 133) | def filter_datasets( method filter_by_type (line 143) | defp filter_by_type(datasets, ""), do: datasets method filter_by_type (line 145) | defp filter_by_type(datasets, value), method filter_by_search (line 148) | defp filter_by_search(datasets, ""), do: datasets method filter_by_search (line 150) | defp filter_by_search(datasets, value) do method normalize (line 164) | def normalize(value) do FILE: apps/transport/lib/transport_web/live/validate_dataset_view.ex class TransportWeb.Live.ValidateDatasetView (line 1) | defmodule TransportWeb.Live.ValidateDatasetView method render (line 9) | def render(assigns) do method mount (line 17) | def mount(_params, %{"dataset_id" => dataset_id, "locale" => locale}, ... method handle_event (line 28) | def handle_event("validate_dataset", _value, socket) do method handle_info (line 34) | def handle_info({:validate, dataset_id}, socket) do method handle_info (line 45) | def handle_info(:display_form, socket) do method assign_step (line 49) | defp assign_step(socket, step) do method button_texts (line 58) | defp button_texts(step) do method button_classes (line 69) | defp button_classes(step) do FILE: apps/transport/lib/transport_web/live/validate_resource_live.ex class TransportWeb.Live.ValidateResourceLive (line 1) | defmodule TransportWeb.Live.ValidateResourceLive method render (line 48) | def render(assigns) do method interactive_validation_upload (line 124) | defp interactive_validation_upload(%{} = assigns) do method validation_report (line 167) | defp validation_report(%{} = assigns) do method upload_file (line 185) | defp upload_file(%{f: _, datagouv_resource: _} = assigns) do method specify_url (line 201) | defp specify_url(%{} = assigns) do method upload_drop_zone (line 231) | defp upload_drop_zone(%{uploads: _} = assigns) do method icon (line 245) | defp icon(%{title: _, class: _} = assigns) do method validation_status (line 278) | defp validation_status(%{} = assigns) do method mount (line 287) | def mount( method initialize_changeset (line 314) | defp initialize_changeset(%DB.Resource{} = resource, _formats) do method initialize_changeset (line 318) | defp initialize_changeset(_, formats) do method reset_state (line 322) | defp reset_state(socket) do method handle_event (line 331) | def handle_event("change", %{"form" => form}, socket) do method handle_event (line 336) | def handle_event("start-validation", %{"url" => url, "format" => forma... method handle_event (line 344) | def handle_event("validate", _params, socket) do method handle_event (line 349) | def handle_event("start_again", _params, socket) do method handle_event (line 354) | def handle_event("cancel-upload", %{"ref" => ref}, socket) do method handle_progress (line 358) | defp handle_progress(:zip, entry, socket) do method handle_info (line 392) | def handle_info(:update_data, socket) do method schedule_next_update (line 402) | defp schedule_next_update do method create_multi_validation_for_url (line 406) | defp create_multi_validation_for_url(url, format) do method create_multi_validation_for_file (line 424) | defp create_multi_validation_for_file(filename, format) do method dispatch_validation_job (line 440) | defp dispatch_validation_job(%DB.MultiValidation{id: id, oban_args: ob... method stream_to_s3 (line 444) | defp stream_to_s3(local_filepath, path) do method changeset_value (line 448) | defp changeset_value(changeset, field) do method file_validation_enabled? (line 452) | defp file_validation_enabled?(format), do: format in @file_validation_... method display_url_validation? (line 453) | defp display_url_validation?(format), do: format in @url_validation_en... method display_file_upload? (line 455) | defp display_file_upload?(changeset) do method valid_url? (line 459) | def valid_url?(nil), do: false method valid_url? (line 461) | def valid_url?(string) do FILE: apps/transport/lib/transport_web/plugs/custom_secure_browser_headers.ex class TransportWeb.Plugs.CustomSecureBrowserHeaders (line 1) | defmodule TransportWeb.Plugs.CustomSecureBrowserHeaders method init (line 6) | def init(options), do: options method generate_nonce (line 8) | defp generate_nonce(size \\ 10), do: size |> :crypto.strong_rand_bytes... method call (line 10) | def call(conn, _opts) do method csp_headers (line 42) | def csp_headers(mix_env, app_env, nonce) do method additional_content (line 70) | defp additional_content("img-src", mix_env, app_env) do method additional_content (line 78) | defp additional_content("frame-src", mix_env, _app_env) do method additional_content (line 90) | defp additional_content(_directive, _mix_env, _app_env) do FILE: apps/transport/lib/transport_web/plugs/halt.ex class TransportWeb.Plugs.Halt (line 1) | defmodule TransportWeb.Plugs.Halt method init (line 9) | def init(options), do: options method call (line 11) | def call(conn, opts) do FILE: apps/transport/lib/transport_web/plugs/head.ex class TransportWeb.Plugs.Head (line 1) | defmodule TransportWeb.Plugs.Head method init (line 11) | def init([]), do: [] method call (line 14) | def call(%Plug.Conn{method: "HEAD"} = conn, []) do method call (line 18) | def call(conn, []), do: conn FILE: apps/transport/lib/transport_web/plugs/health_check.ex class TransportWeb.Plugs.HealthCheck (line 1) | defmodule TransportWeb.Plugs.HealthCheck method init (line 10) | def init(options), do: options method call (line 12) | def call(conn, opts) do method checks (line 38) | defp checks do method get_metrics (line 49) | defp get_metrics do method run_checks (line 55) | defp run_checks(params) do method database_up? (line 67) | defp database_up? do FILE: apps/transport/lib/transport_web/plugs/producer_data.ex class TransportWeb.Plugs.ProducerData (line 1) | defmodule TransportWeb.Plugs.ProducerData method init (line 27) | def init(opts), do: opts method call (line 29) | def call(%Plug.Conn{} = conn, _opts) do method datasets_for_user (line 37) | defp datasets_for_user(%Plug.Conn{assigns: %{current_user: %{"id" => u... method datasets_checks (line 47) | defp datasets_checks(%Plug.Conn{assigns: %{datasets_for_user: datasets... method datasets_checks (line 62) | defp datasets_checks(conn, cache_key, datasets) do method maybe_delete_if_error (line 68) | defp maybe_delete_if_error({:error, _} = value, cache_key) do method maybe_delete_if_error (line 73) | defp maybe_delete_if_error(value, _cache_key), do: value method maybe_skip_cache (line 75) | defp maybe_skip_cache(%Plug.Conn{method: method, request_path: request... FILE: apps/transport/lib/transport_web/plugs/put_locale.ex class TransportWeb.Plugs.PutLocale (line 1) | defmodule TransportWeb.Plugs.PutLocale method init (line 9) | def init(options), do: options method call (line 11) | def call(conn, _opts) do method maybe_save_locale_for_current_contact (line 26) | def maybe_save_locale_for_current_contact(%Plug.Conn{assigns: %{curren... method supported_locales (line 33) | def supported_locales, do: @supported_locales method preferred_accept_language (line 48) | def preferred_accept_language(conn) do method extract_accept_language (line 71) | def extract_accept_language(conn) do method parse_language_option (line 87) | defp parse_language_option(string) do method ensure_language_fallbacks (line 99) | defp ensure_language_fallbacks(tags) do FILE: apps/transport/lib/transport_web/plugs/rate_limiter.ex class TransportWeb.Plugs.RateLimiter (line 1) | defmodule TransportWeb.Plugs.RateLimiter method init (line 24) | def init(:use_env_variables), do: :use_env_variables method init (line 39) | def init(options) do method prepare_param (line 50) | def prepare_param(""), do: [] method call (line 54) | def call(%Plug.Conn{} = conn, :use_env_variables) do method call (line 65) | def call(%Plug.Conn{} = conn, options) do method maybe_log_http_details (line 72) | defp maybe_log_http_details(%Plug.Conn{method: method, request_path: r... method maybe_log_http_details (line 80) | defp maybe_log_http_details(%Plug.Conn{} = conn, false = _log_user_age... method maybe_block_request (line 82) | defp maybe_block_request(%Plug.Conn{} = conn, [] = _block_keywords), d... method maybe_block_request (line 84) | defp maybe_block_request(%Plug.Conn{request_path: request_path} = conn... method maybe_allow_user_agent (line 99) | defp maybe_allow_user_agent(%Plug.Conn{halted: true} = conn, _), do: conn method maybe_allow_user_agent (line 101) | defp maybe_allow_user_agent(%Plug.Conn{} = conn, [] = _allow_user_agen... method maybe_allow_user_agent (line 105) | defp maybe_allow_user_agent(%Plug.Conn{} = conn, allow_user_agents) do method user_agent (line 119) | def user_agent(%Plug.Conn{} = conn) do FILE: apps/transport/lib/transport_web/plugs/reuser_data.ex class TransportWeb.Plugs.ReuserData (line 1) | defmodule TransportWeb.Plugs.ReuserData method init (line 20) | def init(opts), do: opts method call (line 22) | def call(%Plug.Conn{} = conn, _opts) do method followed_datasets (line 26) | defp followed_datasets(%Plug.Conn{assigns: %{current_contact: %DB.Cont... method followed_datasets (line 32) | defp followed_datasets(%Plug.Conn{assigns: %{current_contact: nil}} = ... method followed_datasets_checks (line 36) | defp followed_datasets_checks( method followed_datasets_checks (line 53) | defp followed_datasets_checks(%Plug.Conn{} = conn), do: assign(conn, :... method followed_datasets_checks_cache_key (line 55) | def followed_datasets_checks_cache_key(user_id), do: "followed_dataset... method datasets_checks (line 57) | defp datasets_checks(datasets, cache_key) do method hidden_reuser_alerts (line 67) | defp hidden_reuser_alerts(%Plug.Conn{assigns: %{current_contact: %DB.C... method hidden_reuser_alerts (line 71) | defp hidden_reuser_alerts(%Plug.Conn{} = conn), do: assign(conn, :hidd... FILE: apps/transport/lib/transport_web/plugs/router.ex class TransportWeb.Plugs.Router (line 1) | defmodule TransportWeb.Plugs.Router FILE: apps/transport/lib/transport_web/plugs/worker_healthcheck.ex class TransportWeb.Plugs.WorkerHealthcheck (line 1) | defmodule TransportWeb.Plugs.WorkerHealthcheck method init (line 20) | def init(options), do: options method call (line 22) | def call(conn, opts) do method stop_the_beam! (line 66) | def stop_the_beam! do method store_last_attempted_at_delay_metric (line 80) | def store_last_attempted_at_delay_metric do method healthy_state? (line 85) | def healthy_state? do method app_started_recently? (line 89) | def app_started_recently? do method app_start_datetime (line 94) | def app_start_datetime do method app_start_datetime_cache_key_name (line 98) | def app_start_datetime_cache_key_name, do: "#{__MODULE__}::app_start_d... method oban_attempted_jobs_recently? (line 100) | def oban_attempted_jobs_recently? do method oban_last_attempted_at (line 105) | def oban_last_attempted_at do FILE: apps/transport/lib/transport_web/presence.ex class TransportWeb.Presence (line 1) | defmodule TransportWeb.Presence FILE: apps/transport/lib/transport_web/redirect.ex class TransportWeb.Redirect (line 1) | defmodule TransportWeb.Redirect method init (line 10) | def init([external: _] = opts), do: opts method init (line 11) | def init([to: _] = opts), do: opts method init (line 12) | def init(_default), do: raise("Missing required option. Specify `exter... method call (line 14) | def call(conn, opts) do FILE: apps/transport/lib/transport_web/router.ex class TransportWeb.Router (line 1) | defmodule TransportWeb.Router method assign_mix_env (line 376) | defp assign_mix_env(conn, _) do method assign_current_user (line 380) | defp assign_current_user(conn, _) do method assign_current_contact (line 385) | defp assign_current_contact(%Plug.Conn{assigns: %{current_user: nil}} ... method assign_current_contact (line 389) | defp assign_current_contact(%Plug.Conn{assigns: %{current_user: %{"id"... method assign_datagouv_token (line 395) | defp assign_datagouv_token(conn, _) do method maybe_login_again (line 400) | defp maybe_login_again(conn, _) do method authentication_required (line 424) | def authentication_required(%Plug.Conn{} = conn, nil), do: authenticat... method authentication_required (line 426) | def authentication_required(%Plug.Conn{} = conn, options) do method check_export_secret_key (line 443) | defp check_export_secret_key(%Plug.Conn{params: params} = conn, _) do method check_proxy_config_key (line 457) | defp check_proxy_config_key(%Plug.Conn{} = conn, _) do method transport_data_gouv_member (line 473) | defp transport_data_gouv_member(%Plug.Conn{} = conn, _) do method canonical_host (line 485) | defp canonical_host(conn, _) do FILE: apps/transport/lib/transport_web/session.ex class TransportWeb.Session (line 1) | defmodule TransportWeb.Session method set_is_producer (line 19) | def set_is_producer(%Plug.Conn{} = conn, %{"organizations" => _} = par... method set_is_admin (line 32) | def set_is_admin(%Plug.Conn{} = conn, %{"organizations" => _} = params... method admin? (line 36) | def admin?(%{"organizations" => orgs}) do method admin? (line 40) | def admin?(%Plug.Conn{} = conn) do method admin? (line 44) | def admin?(%Phoenix.LiveView.Socket{assigns: %{current_user: current_u... method producer? (line 49) | def producer?(%Plug.Conn{} = conn) do method producer? (line 55) | def producer?(%DB.Contact{} = contact) do method producer? (line 63) | def producer?(%{"organizations" => orgs}) do method set_session_attribute_attribute (line 73) | defp set_session_attribute_attribute(%Plug.Conn{} = conn, key, value) do method current_user (line 78) | defp current_user(%Plug.Conn{} = conn), do: get_session(conn, :current... FILE: apps/transport/lib/transport_web/views/aoms_view.ex class TransportWeb.AOMSView (line 1) | defmodule TransportWeb.AOMSView method format_bool (line 4) | def format_bool(nil), do: "" method format_bool (line 5) | def format_bool(true), do: "✅" method format_bool (line 6) | def format_bool(false), do: "❌" FILE: apps/transport/lib/transport_web/views/atom_view.ex class TransportWeb.AtomView (line 1) | defmodule TransportWeb.AtomView FILE: apps/transport/lib/transport_web/views/backoffice/breaking_news_view.ex class TransportWeb.Backoffice.BreakingNewsView (line 1) | defmodule TransportWeb.Backoffice.BreakingNewsView FILE: apps/transport/lib/transport_web/views/backoffice/broken_urls_view.ex class TransportWeb.Backoffice.BrokenUrlsView (line 1) | defmodule TransportWeb.Backoffice.BrokenUrlsView FILE: apps/transport/lib/transport_web/views/backoffice/contact_view.ex class TransportWeb.Backoffice.ContactView (line 1) | defmodule TransportWeb.Backoffice.ContactView method pagination_links (line 8) | def pagination_links(conn, contacts) do method role_class (line 15) | defp role_class(%{role: :producer}), do: "label" method role_class (line 16) | defp role_class(%{role: :reuser}), do: "label label--inactive" method dataset_title (line 18) | defp dataset_title(%DB.Dataset{custom_title: custom_title, type: type,... method dataset_title (line 22) | defp dataset_title(%DB.Dataset{custom_title: custom_title, type: type,... method notification_subscriptions_with_dataset (line 26) | defp notification_subscriptions_with_dataset(records) do method notification_subscriptions_without_dataset (line 33) | defp notification_subscriptions_without_dataset(records) do method add_filter (line 40) | defp add_filter(kwargs, params) do FILE: apps/transport/lib/transport_web/views/backoffice/dashboard_view.ex class TransportWeb.Backoffice.DashboardView (line 1) | defmodule TransportWeb.Backoffice.DashboardView method cell_class (line 5) | def cell_class({_import_count = 0, _success_count}), do: "no_import" FILE: apps/transport/lib/transport_web/views/backoffice/page_view.ex class TransportWeb.Backoffice.PageView (line 1) | defmodule TransportWeb.Backoffice.PageView method pagination_links (line 7) | def pagination_links(conn, datasets) do method add_filter (line 14) | defp add_filter(kwargs, params) do method backoffice_sort_link (line 24) | def backoffice_sort_link(conn, text, order_by, current_order) do method get_arrow (line 54) | defp get_arrow(column_is_sorted, direction) do method unaccent (line 77) | def unaccent(nil), do: "" method notification_subscription_contact (line 85) | def notification_subscription_contact(%DB.NotificationSubscription{con... FILE: apps/transport/lib/transport_web/views/bread_crumbs.ex class TransportWeb.BreadCrumbs (line 1) | defmodule TransportWeb.BreadCrumbs method breadcrumbs (line 7) | def breadcrumbs(args) do method crumbs (line 13) | def crumbs(conn, :espace_producteur) do method crumbs (line 17) | def crumbs(conn, :reuser_space) do method crumbs (line 21) | def crumbs(conn, :settings) do method crumbs (line 25) | def crumbs(conn, :new_token) do method crumbs (line 29) | def crumbs(conn, :contacts) do method crumbs (line 33) | def crumbs(conn, :contacts_edit) do method crumbs (line 37) | def crumbs(conn, :proxy_statistics) do method crumbs (line 44) | def crumbs(conn, :download_statistics) do method crumbs (line 51) | def crumbs(conn, :unanswered_discussions) do method crumbs (line 58) | def crumbs(conn, :espace_producteur_notifications) do method crumbs (line 65) | def crumbs(conn, :reuser_space_notifications) do method crumbs (line 72) | def crumbs(conn, :datasets_edit, dataset_custom_title) do method crumbs (line 76) | def crumbs(conn, :edit_dataset, dataset_custom_title, id) do method crumbs (line 80) | def crumbs(conn, :delete_resource, dataset_custom_title, id) do method crumbs (line 85) | def crumbs(conn, :new_resource, dataset_custom_title, id) do method crumbs (line 90) | def crumbs(conn, :update_resource, dataset_custom_title, id) do method crumbs (line 95) | def crumbs(conn, :reuser_improved_data, dataset_custom_title, id, reso... method render_crumbs (line 100) | def render_crumbs(crumbs_element) do method render_crumb_element (line 106) | def render_crumb_element({text, link}, :list_element) do method render_crumb_element (line 111) | def render_crumb_element({text, _link}, :last_element) do method render_crumbs_elements (line 115) | def render_crumbs_elements([element]) do method render_crumbs_elements (line 119) | def render_crumbs_elements([head | tail]) do FILE: apps/transport/lib/transport_web/views/dataset_view.ex class TransportWeb.DatasetView (line 1) | defmodule TransportWeb.DatasetView method count_resources (line 26) | def count_resources(dataset) do method count_documentation_resources (line 32) | def count_documentation_resources(dataset) do method count_discussions (line 40) | def count_discussions(nil), do: ~c"-" method count_discussions (line 41) | def count_discussions(discussions), do: Enum.count(discussions) method pagination_links (line 43) | def pagination_links(%{path_info: ["datasets", "region", region]} = co... method pagination_links (line 54) | def pagination_links(%{path_info: ["datasets", "epci", epci]} = conn, ... method pagination_links (line 65) | def pagination_links(conn, paginator) do method order_link (line 69) | def order_link(conn, order_by) do method licence_link (line 84) | def licence_link(%Plug.Conn{} = conn, %{licence: "all", count: count}) do method region_link (line 106) | def region_link(conn, %{nom: nom, count: count, insee: insee}) do method legal_owners_links (line 125) | def legal_owners_links(conn, %DB.Dataset{legal_owners_aom: legal_owner... method legal_owner_link (line 135) | def legal_owner_link(conn, %DB.Region{nom: nom, insee: insee}) do method legal_owner_link (line 139) | def legal_owner_link(conn, %DB.AOM{nom: nom, siren: siren}) do method type_link (line 143) | def type_link(conn, %{type: type, msg: msg, count: count}) do method subtype_link (line 147) | def subtype_link(conn, %{subtype: subtype, msg: msg, count: count}) do method format_link (line 151) | def format_link(conn, %{format: format, msg: msg, count: count}) do method link_by_key (line 155) | defp link_by_key(conn, key_name, %{key: key, msg: msg, count: count}) do method real_time_link (line 182) | def real_time_link(conn, %{only_realtime: only_rt, msg: msg, count: co... method icon_type_path (line 202) | def icon_type_path(%{type: type}) do method display_all_types_links? (line 228) | def display_all_types_links?(_), do: false method add_query_params (line 230) | defp add_query_params(kwargs, params) do method gbfs_feed_source_for_ttl (line 238) | def gbfs_feed_source_for_ttl(types) do method summary_class (line 250) | def summary_class(%{digest: %{"max_severity" => %{"max_level" => sever... method summary_class (line 254) | def summary_class(%{count_errors: 0}), do: "resource__summary--Success" method summary_class (line 255) | def summary_class(%{severity: severity}), do: "resource__summary--#{St... method summary_class (line 277) | def summary_class(%DB.MultiValidation{}), do: "resource__summary--Succ... method warnings_count (line 287) | def warnings_count(%DB.MultiValidation{validator: @gtfs_rt_validator_n... method warnings_count (line 288) | def warnings_count(%DB.MultiValidation{}), do: nil method errors_count (line 298) | def errors_count(%DB.MultiValidation{}), do: nil method availability_number_days (line 300) | def availability_number_days, do: 30 method max_nb_history_resources (line 301) | def max_nb_history_resources, do: 25 method days_notifications_sent (line 302) | def days_notifications_sent, do: 90 method outdated_class (line 324) | def outdated_class(%Date{} = end_date, reference_date \\ Date.utc_toda... method validity_dates (line 332) | def validity_dates(assigns) do method get_validity_date (line 346) | def get_validity_date(multi_validation, key) do method valid_panel_class (line 350) | def valid_panel_class(%DB.Resource{is_available: false}, _), do: "inva... method valid_panel_class (line 352) | def valid_panel_class(%DB.Resource{} = r, is_outdated) do method official_available_resources (line 360) | def official_available_resources(dataset), method gtfs_official_resources (line 366) | def gtfs_official_resources(dataset), method unavailable_resources (line 372) | def unavailable_resources(dataset), method real_time_official_resources (line 378) | def real_time_official_resources(dataset), method netex_official_resources (line 384) | def netex_official_resources(dataset), method schemas_resources (line 390) | def schemas_resources(dataset) do method other_official_resources (line 397) | def other_official_resources(dataset) do method official_documentation_resources (line 409) | def official_documentation_resources(dataset) do method community_resources (line 415) | def community_resources(dataset), do: Dataset.community_resources(data... method licence_url (line 420) | def licence_url("odc-odbl"), do: "https://opendatacommons.org/licenses... method licence_url (line 422) | def licence_url("mobility-licence"), method licence_url (line 425) | def licence_url(_), do: nil method description (line 428) | def description(%Dataset{description: description}), do: description |... method description (line 429) | def description(%Resource{description: description}), do: description ... method markdown_to_safe_html! (line 431) | def markdown_to_safe_html!(md), do: MarkdownHandler.markdown_to_safe_h... method licence (line 446) | def licence(%Dataset{licence: licence}) do method get_resource_to_display (line 471) | def get_resource_to_display(%Dataset{type: "vehicles-sharing", resourc... method get_resource_to_display (line 481) | def get_resource_to_display(%Dataset{type: "road-data", resources: res... method get_resource_to_display (line 494) | def get_resource_to_display(%Dataset{}), do: nil method resource_tooltip_content (line 496) | def resource_tooltip_content(%DB.Resource{is_available: false}), method resource_tooltip_content (line 499) | def resource_tooltip_content(%DB.Resource{}), do: nil method resource_span_class (line 501) | def resource_span_class(%DB.Resource{is_available: false}), do: "span-... method resource_span_class (line 502) | def resource_span_class(%DB.Resource{}), do: nil method resource_class (line 504) | def resource_class(false = _is_available, _), do: "resource--unavailable" method resource_class (line 505) | def resource_class(_, true = _is_outdated), do: "resource--outdated" method resource_class (line 506) | def resource_class(_, false = _is_outdated), do: "resource--valid" method resource_class (line 507) | def resource_class(_, _), do: "" method order_resources_by_validity (line 509) | def order_resources_by_validity(resources, %{validations: validations}... method order_resources_by_format (line 513) | def order_resources_by_format(resources) do method documentation_url (line 523) | def documentation_url(%Resource{schema_name: schema_name, schema_versi... method schema_label (line 531) | def schema_label(%{schema_name: schema_name}), do: schema_name method has_validity_period? (line 537) | def has_validity_period?(%DB.ResourceHistory{} = resource_history) do method validity_period (line 544) | def validity_period(%DB.ResourceHistory{ method validity_period (line 552) | def validity_period(_), do: %{} method resource_last_update_span (line 554) | def resource_last_update_span(assigns) do method resource_last_update_date_or_string (line 568) | def resource_last_update_date_or_string(_resources_updated_at, _resour... method resource_last_update_date_or_string (line 572) | def resource_last_update_date_or_string(resources_updated_at, %DB.Reso... method publish_community_resource_url (line 583) | def publish_community_resource_url(%DB.Dataset{datagouv_id: datagouv_i... method multi_validation_performed? (line 589) | def multi_validation_performed?(%DB.MultiValidation{result: %{"validat... method multi_validation_performed? (line 590) | def multi_validation_performed?(%DB.MultiValidation{}), do: true method multi_validation_performed? (line 591) | def multi_validation_performed?(nil), do: false method display_odbl_osm_conditions? (line 607) | def display_odbl_osm_conditions?(%Dataset{licence: "odc-odbl", tags: t... method display_odbl_osm_conditions? (line 611) | def display_odbl_osm_conditions?(%Dataset{}), do: false method related_gtfs_resource (line 614) | def related_gtfs_resource(%Resource{format: "gtfs-rt", resources_relat... method related_gtfs_resource (line 618) | def related_gtfs_resource(%Resource{}), do: nil method seasonal_warning? (line 626) | def seasonal_warning?(%DB.Dataset{} = dataset), do: DB.Dataset.has_sub... method authentication_required? (line 628) | def authentication_required?(%DB.Dataset{} = dataset), method heart_class (line 637) | def heart_class(dataset_heart_values, %DB.Dataset{id: dataset_id}) do method latest_validation (line 642) | def latest_validation(%DB.Resource{id: resource_id} = resource, %{vali... method pick_validator (line 656) | def pick_validator(%DB.MultiValidation{} = validation) do method pick_validator (line 665) | def pick_validator(_), do: nil method empty_to_nil (line 667) | def empty_to_nil(""), do: nil method empty_to_nil (line 668) | def empty_to_nil(value), do: value method notification_sent (line 670) | def notification_sent(%{} = assigns) do method notification_sent_details (line 680) | def notification_sent_details( method notification_sent_details (line 721) | def notification_sent_details(%{reason: :expiration} = assigns) do class TransportWeb.DatasetView.ResourceTypeSortKey (line 730) | defmodule TransportWeb.DatasetView.ResourceTypeSortKey method compare (line 731) | def compare({left_type, left_last_update}, {right_type, right_last_u... FILE: apps/transport/lib/transport_web/views/email_view.ex class TransportWeb.EmailView (line 1) | defmodule TransportWeb.EmailView method link_for_dataset_section (line 14) | def link_for_dataset_section(%DB.Dataset{} = dataset, :discussion) do method link_for_dataset (line 18) | def link_for_dataset(%DB.Dataset{slug: slug, custom_title: custom_titl... method link_for_dataset_discussions (line 23) | def link_for_dataset_discussions(%DB.Dataset{slug: slug}) do method link_for_dataset_with_type (line 28) | def link_for_dataset_with_type(%DB.Dataset{type: type} = dataset) do method link_for_resource (line 33) | def link_for_resource(%DB.Resource{id: id, title: title}) do method link_for_espace_producteur (line 38) | def link_for_espace_producteur(view_name) do method link_for_reuser_space (line 49) | def link_for_reuser_space(view_name) do method link_for_login (line 60) | def link_for_login do FILE: apps/transport/lib/transport_web/views/error_helpers.ex class TransportWeb.ErrorHelpers (line 1) | defmodule TransportWeb.ErrorHelpers method error_tag (line 11) | def error_tag(form, field) do method translate_error (line 20) | def translate_error({msg, opts}) do FILE: apps/transport/lib/transport_web/views/error_view.ex class TransportWeb.ErrorView (line 1) | defmodule TransportWeb.ErrorView method render (line 4) | def render("500.html", assigns) do method render (line 8) | def render("503.html", assigns) do method render (line 14) | def render("400.html", assigns) do method render (line 22) | def render("401.html", assigns) do method render (line 27) | def render("404.html", %{status_message: _status_message} = assigns) do method render (line 31) | def render("404.html", assigns) do FILE: apps/transport/lib/transport_web/views/espace_producteur_view.ex class TransportWeb.EspaceProducteurView (line 1) | defmodule TransportWeb.EspaceProducteurView method action_path (line 7) | def action_path(%Plug.Conn{params: %{"resource_datagouv_id" => r_id}, ... method action_path (line 10) | def action_path(%Plug.Conn{assigns: %{dataset: dataset}} = conn), method title (line 13) | def title(%Plug.Conn{params: %{"resource_datagouv_id" => _}}), method title (line 16) | def title(_), do: dgettext("resource", "Add a new resource") method remote? (line 18) | def remote?(%{"filetype" => "remote"}), do: true method remote? (line 19) | def remote?(_), do: false method show_proxy_stats_block? (line 22) | def show_proxy_stats_block?(datasets) do method show_downloads_stats? (line 29) | def show_downloads_stats?(%DB.Dataset{resources: resources}) do method show_important_information? (line 33) | def show_important_information?(checks), do: show_important_informatio... method show_important_information? (line 35) | def show_important_information?(checks, :producer, _hidden_alerts) do method show_important_information? (line 39) | def show_important_information?(checks, :reuser, hidden_alerts) do method has_visible_issues? (line 43) | defp has_visible_issues?({dataset_id, dataset_checks}, hidden_alerts) do method has_visible_issue? (line 47) | defp has_visible_issue?({check_name, issues}, dataset_id, hidden_alert... method extract_issue (line 54) | defp extract_issue(%DB.Resource{} = resource), do: resource method extract_issue (line 55) | defp extract_issue({%DB.Resource{} = resource, [_mv | _]}), do: resource method extract_issue (line 56) | defp extract_issue(discussion), do: discussion method issue_hidden? (line 58) | def issue_hidden?(hidden_alerts, dataset, check_name, issue) do method important_information (line 68) | def important_information(%{} = assigns) do method issue_title (line 84) | defp issue_title(%{issue: %DB.Resource{}, check_name: :expiring_resour... method issue_title (line 91) | defp issue_title(%{issue: %DB.Resource{}} = assigns) do method issue_title (line 97) | defp issue_title(%{issue: _} = assigns) do method issue_name (line 103) | defp issue_name(%{check_name: :expiring_resource, multi_validation: %D... method issue_name (line 117) | defp issue_name(%{} = assigns) do method issue_link (line 123) | defp issue_link(%{mode: :producer, check_name: :unanswered_discussions... method issue_link (line 138) | defp issue_link(%{mode: :producer, check_name: _} = assigns) do method issue_link (line 153) | defp issue_link(%{mode: :reuser, issue: %DB.Resource{}} = assigns) do method issue_link (line 172) | defp issue_link(%{mode: :reuser, check_name: :recent_discussions} = as... method hide_button (line 190) | defp hide_button(%{} = assigns) do method dataset_creation_url (line 211) | def dataset_creation_url, method datagouv_resource_edit_url (line 217) | def datagouv_resource_edit_url(dataset_id, resource_id), method datagouv_resource_creation_url (line 223) | def datagouv_resource_creation_url(dataset_id), FILE: apps/transport/lib/transport_web/views/explore_view.ex class TransportWeb.ExploreView (line 1) | defmodule TransportWeb.ExploreView method render (line 4) | def render("gtfs_stops_data.json", conn) do FILE: apps/transport/lib/transport_web/views/gbfs_anaylzer_view.ex class TransportWeb.GbfsAnalyzerView (line 1) | defmodule TransportWeb.GbfsAnalyzerView FILE: apps/transport/lib/transport_web/views/geojson_conversion_view.ex class TransportWeb.GeojsonConversionView (line 1) | defmodule TransportWeb.GeojsonConversionView FILE: apps/transport/lib/transport_web/views/input_helpers.ex class TransportWeb.InputHelpers (line 1) | defmodule TransportWeb.InputHelpers method form_group (line 43) | def form_group(do: block) do method form_group (line 47) | def form_group(field), do: content_tag(:div, field, class: "form__group") method select (line 49) | def select(form, field, options, opts \\ []) do method search_input (line 66) | def search_input(form, field, opts \\ []) do method submit (line 79) | def submit([do: _] = block_option), do: submit([], block_option) method submit (line 80) | def submit(_, opts \\ []) method submit (line 82) | def submit(value, opts) do method text_input (line 97) | def text_input(form, field, opts \\ []) do method email_input (line 117) | def email_input(form, field, opts \\ []) do method textarea (line 121) | def textarea(form, field, opts \\ []) do method textarea_autoexpand (line 125) | def textarea_autoexpand(form, field, opts \\ []) do method autoexpand_wrapper (line 130) | def autoexpand_wrapper(content), do: content_tag(:div, content, class:... method file_input (line 132) | def file_input(form, field, opts \\ []) do FILE: apps/transport/lib/transport_web/views/landing_pages_view.ex class TransportWeb.LandingPagesView (line 1) | defmodule TransportWeb.LandingPagesView method gbfs_abbreviation (line 4) | def gbfs_abbreviation(text) do method aoms_abbreviation (line 8) | def aoms_abbreviation(text) do method abbreviation (line 13) | defp abbreviation(text, abbreviation, explanation) do method homepage_link (line 17) | def homepage_link(text) do method format_integer (line 25) | def format_integer(number) do FILE: apps/transport/lib/transport_web/views/layout_view.ex class TransportWeb.LayoutView (line 1) | defmodule TransportWeb.LayoutView method current_path (line 8) | def current_path(conn) do method has_flash (line 12) | def has_flash(%Plug.Conn{} = conn), do: not Enum.empty?(conn.assigns.f... method avatar_url (line 24) | def avatar_url(%Plug.Conn{assigns: %{current_user: %{"id" => datagouv_... method avatar_url (line 29) | def avatar_url(%Plug.Conn{}), do: nil method add_locale_to_url (line 31) | def add_locale_to_url(conn, locale) do method notifications_count (line 36) | def notifications_count(%Plug.Conn{} = conn) do method producer_notifications_count (line 46) | def producer_notifications_count(%Plug.Conn{} = conn) do method reuser_notifications_count (line 56) | def reuser_notifications_count(%Plug.Conn{} = conn) do method count_visible_issues (line 68) | defp count_visible_issues(check, dataset_id, hidden_alerts) do method issue_opts (line 79) | defp issue_opts(%DB.Resource{id: resource_id}), do: [resource_id: reso... method issue_opts (line 80) | defp issue_opts({%DB.Resource{id: resource_id}, _}), do: [resource_id:... method issue_opts (line 81) | defp issue_opts(%{"id" => discussion_id}), do: [discussion_id: discuss... method issue_opts (line 82) | defp issue_opts(_), do: [] method notification_count (line 84) | def notification_count(%{count: _, static: _} = assigns) do FILE: apps/transport/lib/transport_web/views/markdown_handler.ex class TransportWeb.MarkdownHandler (line 1) | defmodule TransportWeb.MarkdownHandler method markdown_to_safe_html! (line 12) | def markdown_to_safe_html!(nil), do: HTML.raw(nil) method markdown_to_safe_html! (line 14) | def markdown_to_safe_html!(md) do method to_html_with_anchors (line 24) | def to_html_with_anchors(markdown) do method slugify (line 50) | defp slugify(text) do FILE: apps/transport/lib/transport_web/views/netex_report_components.ex class TransportWeb.NeTExReportComponents (line 1) | defmodule TransportWeb.NeTExReportComponents method to_netex_validation_report (line 14) | def to_netex_validation_report(url), do: url <> "#validation-report" method netex_generic_issues (line 16) | def netex_generic_issues(%{issues: _} = assigns) do method netex_validation_report_title (line 38) | def netex_validation_report_title( method netex_validation_report_title (line 52) | def netex_validation_report_title(%{validation_report_url: _} = assign... method title (line 61) | defp title(%{level: 2} = assigns) do method title (line 67) | defp title(%{level: 4} = assigns) do method netex_validation_report_content (line 73) | def netex_validation_report_content( method netex_validation_categories (line 113) | defp netex_validation_categories(%{conn: _, results_adapter: _, valida... method sort_categories (line 128) | defp sort_categories(summary) do method netex_validation_selected_category (line 141) | defp netex_validation_selected_category( method non_translated_messages (line 196) | defp non_translated_messages(%{locale: _} = assigns) do method netex_validation_report_download (line 204) | defp netex_validation_report_download(%{validation_report_url: _} = as... method download_popup_title (line 221) | defp download_popup_title(%{} = assigns) do method download_popup_content (line 227) | defp download_popup_content(%{url: nil} = assigns) do method download_popup_content (line 235) | defp download_popup_content(%{url: _} = assigns) do method download_button (line 267) | defp download_button(%{url: _, format: _} = assigns) do method with_string (line 277) | defp with_string(proc) do method netex_category_tooltip (line 285) | defp netex_category_tooltip(%{category: _, compliance_check: _, result... method netex_category_tooltip (line 307) | defp netex_category_tooltip(%{} = assigns) do method markdown_to_safe_html! (line 312) | defp markdown_to_safe_html!(markdown) do method update_links_target (line 319) | defp update_links_target(html) do method french_profile_comment (line 329) | defp french_profile_comment(:none), do: dgettext("validations", "netex... method french_profile_comment (line 330) | defp french_profile_comment(:partial), do: dgettext("validations", "ne... method french_profile_comment (line 331) | defp french_profile_comment(:good_enough), do: "" method netex_errors_category (line 333) | defp netex_errors_category(%{conn: _, category: _, stats: _, results_a... method netex_link_to_category (line 353) | defp netex_link_to_category(conn, category) do method drop_empty_query_params (line 362) | defp drop_empty_query_params(query_params) do method netex_category_description (line 366) | defp netex_category_description(%{category: _, compliance_check: _, co... method netex_category_comment (line 382) | defp netex_category_comment(%{count: _, category: _} = assigns) do method netex_category_hints (line 392) | defp netex_category_hints(%{category: _} = assigns) do method stats (line 400) | defp stats(%{stats: _, results_adapter: _} = assigns) do method validity_icon (line 412) | defp validity_icon(assigns) do method info_icon (line 418) | defp info_icon(assigns) do method netex_category_label (line 424) | defp netex_category_label("xsd-schema"), do: dgettext("validations", "... method netex_category_label (line 425) | defp netex_category_label("french-profile"), do: dgettext("validations... method netex_category_label (line 426) | defp netex_category_label("base-rules"), do: dgettext("validations", "... method netex_category_label (line 427) | defp netex_category_label(_), do: dgettext("validations", "Other errors") method netex_category_description_html (line 429) | defp netex_category_description_html("xsd-schema", category_french_pro... method netex_category_description_html (line 432) | defp netex_category_description_html("french-profile", _), do: dgettex... method netex_category_description_html (line 433) | defp netex_category_description_html("base-rules", _), do: dgettext("v... method netex_category_description_html (line 434) | defp netex_category_description_html(_, _), do: nil method netex_category_hints_html (line 436) | defp netex_category_hints_html("xsd-schema"), do: dgettext("validation... method netex_category_hints_html (line 437) | defp netex_category_hints_html(_), do: nil FILE: apps/transport/lib/transport_web/views/page_view.ex class TransportWeb.PageView (line 1) | defmodule TransportWeb.PageView method current_tiles (line 4) | def current_tiles(tiles), do: Enum.filter(tiles, &(&1.count > 0)) method upcoming_tiles (line 6) | def upcoming_tiles(tiles) do method class (line 10) | def class("y"), do: "good" method class (line 11) | def class(_), do: "bad" method thumb (line 13) | def thumb("y"), do: "👍" method thumb (line 14) | def thumb(_), do: "👎" method make_link (line 16) | def make_link(""), do: "—" method make_link (line 17) | def make_link(o), do: link("Lien", to: o) method nb_downloads_for_humans (line 29) | def nb_downloads_for_humans(value, locale) do method autocomplete_translations (line 38) | def autocomplete_translations do FILE: apps/transport/lib/transport_web/views/resource_view.ex class TransportWeb.ResourceView (line 1) | defmodule TransportWeb.ResourceView method format_related_objects (line 24) | def format_related_objects(nil), do: "" method format_related_objects (line 26) | def format_related_objects(related_objects) do method gtfs_template (line 30) | def gtfs_template(issues) do method netex_template (line 62) | def netex_template(category \\ "") do method get_associated_geojson (line 75) | def get_associated_geojson(%{GeoJSON: geojson_details}), do: geojson_d... method get_associated_geojson (line 76) | def get_associated_geojson(_), do: nil method errors_sample (line 78) | def errors_sample(%DB.MultiValidation{result: %{"errors" => errors}}) do method errors_sample (line 82) | def errors_sample(_), do: [] method max_display_errors (line 84) | def max_display_errors, do: 50 method hours_ago (line 86) | def hours_ago(utcdatetime, locale) do method seconds_to_hours_minutes (line 104) | def seconds_to_hours_minutes(seconds, locale \\ :en) do method strip_seconds (line 114) | def strip_seconds(seconds), do: div(seconds, 60) * 60 method download_availability_class_text (line 126) | def download_availability_class_text(ratio), do: download_availability... method gbfs_validator_url (line 128) | def gbfs_validator_url, do: "https://github.com/MobilityData/gbfs-vali... method gtfs_rt_validator_url (line 129) | def gtfs_rt_validator_url, do: "https://github.com/MobilityData/gtfs-r... method gtfs_validator_url (line 130) | def gtfs_validator_url, do: "https://github.com/etalab/transport-valid... method netex_validator_url (line 131) | def netex_validator_url, do: "https://documenter.getpostman.com/view/9... method gtfs_rt_validator_rule_url (line 137) | def gtfs_rt_validator_rule_url(%{"error_id" => error_id}) do method mobilitydata_gtfs_validator_url (line 141) | def mobilitydata_gtfs_validator_url, do: "https://gtfs-validator.mobil... method on_demand_validation_link (line 143) | def on_demand_validation_link(conn, %DB.Resource{} = resource) do method geojson_with_viz? (line 177) | def geojson_with_viz?(_, _), do: false method service_alert_icon (line 180) | def service_alert_icon(%{cause: cause}) do method service_alert_effect (line 198) | def service_alert_effect(%{effect: effect}) do method nb_days_entities (line 214) | def nb_days_entities, do: Transport.Jobs.GTFSRTMetadataJob.days_to_keep() method display_gtfs_rt_feed (line 217) | def display_gtfs_rt_feed(gtfs_rt_feed) do method should_display_description? (line 235) | def should_display_description?(%DB.Resource{description: nil}), do: f... method should_display_description? (line 236) | def should_display_description?(%DB.Resource{title: nil}), do: false method should_display_description? (line 237) | def should_display_description?(%DB.Resource{}), do: true method networks_start_end_dates (line 239) | def networks_start_end_dates(assigns) do method latest_validations_nb_days (line 283) | def latest_validations_nb_days, do: 30 method gtfs_for_gtfs_rt (line 285) | def gtfs_for_gtfs_rt( method gtfs_for_gtfs_rt (line 291) | def gtfs_for_gtfs_rt( method format_nil_or_number (line 304) | def format_nil_or_number(nil, _locale), do: "" method format_nil_or_number (line 305) | def format_nil_or_number(value, locale), do: Helpers.format_number(val... method yes_no_icon (line 307) | def yes_no_icon(nil), do: "" method yes_no_icon (line 309) | def yes_no_icon(_), do: "❌" method eligible_for_explore? (line 311) | def eligible_for_explore?(%DB.Resource{format: format}) do method explore_url (line 315) | def explore_url(%DB.Resource{ method netex_features (line 322) | def netex_features(%{features: _} = assigns) do method enumerate_netex_features (line 332) | defp enumerate_netex_features(features) do method feature_order (line 339) | defp feature_order({"networks", _}), do: 1 method feature_order (line 340) | defp feature_order({"stops", _}), do: 2 method feature_order (line 341) | defp feature_order({"fares", _}), do: 3 method feature_order (line 342) | defp feature_order({"timetables", _}), do: 4 method feature_order (line 343) | defp feature_order({"parkings", _}), do: 5 method feature_order (line 344) | defp feature_order({"accessibility", _}), do: 6 method feature_order (line 345) | defp feature_order({_, _}), do: 100 method netex_feature (line 347) | defp netex_feature("networks"), do: dgettext("resource", "networks") method netex_feature (line 348) | defp netex_feature("stops"), do: dgettext("resource", "stops") method netex_feature (line 349) | defp netex_feature("fares"), do: dgettext("resource", "fares") method netex_feature (line 350) | defp netex_feature("timetables"), do: dgettext("resource", "timetables") method netex_feature (line 351) | defp netex_feature("parkings"), do: dgettext("resource", "parkings") method netex_feature (line 352) | defp netex_feature("accessibility"), do: dgettext("resource", "accessi... method netex_feature (line 353) | defp netex_feature(_), do: "" method safe_join (line 355) | defp safe_join(safe_htmls, separator) do method netex_statistics (line 363) | def netex_statistics(%{stats: _, locale: _} = assigns) do method netex_statistic (line 371) | defp netex_statistic(%{concept: _, stats: _, locale: _} = assigns) do method netex_statistic_description (line 382) | defp netex_statistic_description(:line), do: dgettext("resource", "num... method netex_statistic_description (line 383) | defp netex_statistic_description(:quay), do: dgettext("resource", "num... method netex_statistic_description (line 384) | defp netex_statistic_description(:stop_place), do: dgettext("resource"... method netex_statistic_element_tooltip (line 386) | defp netex_statistic_element_tooltip(%{concept: _} = assigns) do method netex_statistic_element (line 398) | defp netex_statistic_element(:line), do: "Line" |> element() method netex_statistic_element (line 399) | defp netex_statistic_element(:quay), do: "Quay" |> element() method netex_statistic_element (line 400) | defp netex_statistic_element(:stop_place), do: "StopPlace" |> element() method element (line 402) | defp element(element_name) do method netex_pagination_links (line 406) | def netex_pagination_links(conn, issues, resource, current_category) do method netex_issues_path (line 414) | defp netex_issues_path(conn, action, resource_id, params) do method error_label (line 418) | def error_label(severity) do method markdown (line 426) | def markdown(text), do: TransportWeb.MarkdownHandler.markdown_to_safe_... FILE: apps/transport/lib/transport_web/views/reuse_view.ex class TransportWeb.ReuseView (line 1) | defmodule TransportWeb.ReuseView FILE: apps/transport/lib/transport_web/views/reuser_space_view.ex class TransportWeb.ReuserSpaceView (line 1) | defmodule TransportWeb.ReuserSpaceView method default_for_contact? (line 5) | def default_for_contact?(%DB.Token{id: token_id}, %DB.Contact{default_... method default_for_contact? (line 9) | def default_for_contact?(%DB.Token{}, %DB.Contact{default_tokens: _}),... FILE: apps/transport/lib/transport_web/views/seo_metadata.ex class TransportWeb.SeoMetadata (line 1) | defmodule TransportWeb.SeoMetadata method metadata (line 14) | def metadata(TransportWeb.DatasetView, %{dataset: dataset}) do method metadata (line 31) | def metadata(TransportWeb.DatasetView, %{ method metadata (line 39) | def metadata(TransportWeb.DatasetView, %{page_title: %{type: "EPCI", n... method metadata (line 44) | def metadata(TransportWeb.DatasetView, %{ method metadata (line 52) | def metadata(TransportWeb.DatasetView, %{ method metadata (line 60) | def metadata(TransportWeb.DatasetView, %{ method metadata (line 68) | def metadata(TransportWeb.DatasetView, %{page_title: %{type: type, nam... method metadata (line 73) | def metadata(TransportWeb.ResourceView, %{resource: %{format: format, ... method metadata (line 84) | def metadata(TransportWeb.StatsView, _), method metadata (line 89) | def metadata(TransportWeb.AOMSView, _), method metadata (line 94) | def metadata(TransportWeb.ReuserSpaceView, _), method metadata (line 99) | def metadata(_, %{live_module: TransportWeb.Live.OnDemandValidationSel... method metadata (line 104) | def metadata(_view, %{page_title: page_title}), do: %{title: page_title} method metadata (line 106) | def metadata(TransportWeb.LandingPagesView, %{seo_page: "vls"}), method metadata (line 111) | def metadata(_view, _assigns), do: %{} FILE: apps/transport/lib/transport_web/views/stats_view.ex class TransportWeb.StatsView (line 1) | defmodule TransportWeb.StatsView FILE: apps/transport/lib/transport_web/views/validation_view.ex class TransportWeb.ValidationView (line 1) | defmodule TransportWeb.ValidationView method render (line 20) | def render("_" <> _ = partial, assigns) do method has_errors? (line 24) | def has_errors?([]), do: false method netex_pagination_links (line 27) | def netex_pagination_links(conn, issues, validation_id, current_catego... method netex_issues_path (line 36) | defp netex_issues_path(conn, action, validation_id, params) do FILE: apps/transport/lib/unlock/aggregate_processor.ex class Unlock.AggregateProcessor (line 1) | defmodule Unlock.AggregateProcessor method schema_fields (line 11) | def schema_fields, do: Transport.IRVE.DynamicIRVESchema.build_schema_f... method process_resource (line 29) | def process_resource(%Unlock.Config.Item.Aggregate{} = item, options \... method cached_fetch (line 81) | def cached_fetch( method process_sub_item (line 120) | def process_sub_item( method process_csv_payload (line 160) | def process_csv_payload(body, origin, slug, options \\ []) do FILE: apps/transport/lib/unlock/batch_metrics.ex class Unlock.EventIncrementer (line 1) | defmodule Unlock.EventIncrementer method impl (line 7) | def impl, do: Application.get_env(:transport, :unlock_event_incrementer) class Unlock.BatchMetrics (line 10) | defmodule Unlock.BatchMetrics method work_delay (line 19) | def work_delay, do: @work_delay method start_link (line 21) | def start_link(_opts) do method init (line 26) | def init(state) do method incr_event (line 32) | def incr_event(%{target: target, event: event}) do method handle_cast (line 37) | def handle_cast({:incr_event, %{target: _target, event: _event} = payl... method handle_info (line 43) | def handle_info(:work, state) do method metric_key (line 61) | def metric_key(%{target: target, event: event}), do: {target, event} method schedule_work (line 63) | defp schedule_work do FILE: apps/transport/lib/unlock/cached_fetch.ex class Unlock.CachedFetch (line 1) | defmodule Unlock.CachedFetch method fetch_data (line 25) | def fetch_data(_item, _http_client_options \\ []) method fetch_data (line 27) | def fetch_data(%Unlock.Config.Item.Generic.HTTP{caching: "disk"} = ite... method fetch_data (line 33) | def fetch_data(%Unlock.Config.Item.Generic.HTTP{} = item, http_client_... method fetch_data (line 45) | def fetch_data(%Unlock.Config.Item.GBFS{} = item, http_client_options) do method fetch_data (line 58) | def fetch_data(%Unlock.Config.Item.S3{} = item, _http_client_options) do method disk_path (line 90) | defp disk_path(item) do method etag_value (line 94) | defp etag_value(headers) do FILE: apps/transport/lib/unlock/config.ex class Unlock.Config (line 1) | defmodule Unlock.Config class Item.Generic.HTTP (line 7) | defmodule Item.Generic.HTTP class Item.SIRI (line 30) | defmodule Item.SIRI class Item.Aggregate (line 40) | defmodule Item.Aggregate class Item.DynamicIRVEAggregate (line 51) | defmodule Item.DynamicIRVEAggregate class Item.S3 (line 63) | defmodule Item.S3 class Item.GBFS (line 78) | defmodule Item.GBFS class Fetcher (line 93) | defmodule Fetcher method convert_aggregate_sub_item (line 100) | def convert_aggregate_sub_item(sub_item) do method convert_yaml_item_to_struct (line 109) | def convert_yaml_item_to_struct(%{"type" => "aggregate"} = item) do method convert_yaml_item_to_struct (line 119) | def convert_yaml_item_to_struct(%{"type" => "dynamic-irve-aggregate"} ... method convert_yaml_item_to_struct (line 126) | def convert_yaml_item_to_struct(%{"type" => "siri"} = item) do method convert_yaml_item_to_struct (line 155) | def convert_yaml_item_to_struct(%{"type" => "gbfs"} = item) do method convert_yaml_item_to_struct (line 166) | def convert_yaml_item_to_struct(%{"type" => "s3"} = item) do method convert_yaml_to_config_items (line 182) | def convert_yaml_to_config_items(body) do method parse_config_http_headers (line 194) | def parse_config_http_headers(list) do method index_items_by_unique_identifier (line 202) | def index_items_by_unique_identifier(items) do class GitHub (line 210) | defmodule GitHub method fetch_config! (line 222) | def fetch_config! do method clear_config_cache! (line 237) | def clear_config_cache! do method fetch_config_no_cache! (line 244) | def fetch_config_no_cache! do method fetch_config_from_github! (line 250) | defp fetch_config_from_github! do class Disk (line 262) | defmodule Disk method fetch_config! (line 270) | def fetch_config! do method clear_config_cache! (line 280) | def clear_config_cache! do FILE: apps/transport/lib/unlock/controller.ex class Unlock.Controller (line 1) | defmodule Unlock.Controller method index (line 23) | def index(conn, _params) do method fetch (line 93) | def fetch(conn, %{"id" => id} = params) do method process_resource (line 162) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 168) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 187) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 207) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 217) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 225) | defp process_resource(conn, %Unlock.Config.Item.Generic.HTTP{}), do: s... method process_resource (line 240) | defp process_resource(%Plug.Conn{method: "POST"} = conn, %Unlock.Confi... method process_resource (line 259) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 262) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method process_resource (line 266) | defp process_resource(%Plug.Conn{method: "GET"} = conn, %Unlock.Config... method send_not_allowed (line 286) | defp send_not_allowed(conn) do method send_http_response (line 291) | defp send_http_response(conn, response, %Unlock.Config.Item.Generic.HT... method handle_authorized_siri_call (line 306) | defp handle_authorized_siri_call(conn, %Unlock.Config.Item.SIRI{} = it... method bad_gateway_response (line 385) | defp bad_gateway_response do method filter_response_headers (line 390) | defp filter_response_headers(headers) do method prepare_response_headers (line 397) | defp prepare_response_headers(headers) do FILE: apps/transport/lib/unlock/dynamic_irve/controller.ex class Unlock.DynamicIRVE.Controller (line 1) | defmodule Unlock.DynamicIRVE.Controller method serve (line 19) | def serve(conn, %Unlock.Config.Item.DynamicIRVEAggregate{} = item) do method dispatch (line 24) | defp dispatch(conn, item, true), do: serve_status(conn, item) method dispatch (line 25) | defp dispatch(conn, item, false), do: serve_data(conn, item) method serve_status (line 27) | defp serve_status(conn, item) do method feed_status (line 36) | defp feed_status(parent_id, feed) do method status_fields (line 41) | defp status_fields(nil, slug), do: %{slug: slug, status: "pending"} method status_fields (line 43) | defp status_fields(%{error: nil, last_updated_at: t}, slug), method status_fields (line 46) | defp status_fields(%{error: e, last_errored_at: le, last_updated_at: l... method row_count (line 49) | defp row_count(%{df: %Explorer.DataFrame{} = df}), do: Explorer.DataFr... method row_count (line 50) | defp row_count(_), do: 0 method serve_data (line 52) | defp serve_data(conn, item), do: serve_data(conn, item, Renderer.aggre... method serve_data (line 54) | defp serve_data(conn, _item, nil), do: send_resp(conn, 503, "No data a... method serve_data (line 56) | defp serve_data(conn, item, df) do method parse_format (line 73) | defp parse_format(nil), do: :csv method parse_format (line 74) | defp parse_format("csv"), do: :csv method parse_format (line 75) | defp parse_format("parquet"), do: :parquet method charset (line 77) | defp charset(:csv), do: "utf-8" method charset (line 78) | defp charset(:parquet), do: nil FILE: apps/transport/lib/unlock/dynamic_irve/feed_store.ex class Unlock.DynamicIRVE.FeedStore (line 1) | defmodule Unlock.DynamicIRVE.FeedStore method create_table (line 11) | def create_table do method put_feed (line 15) | def put_feed(parent_id, slug, data), do: :ets.insert(@table, {{parent_... method get_feed (line 17) | def get_feed(parent_id, slug) do FILE: apps/transport/lib/unlock/dynamic_irve/feed_worker.ex class Unlock.DynamicIRVE.FeedWorker (line 1) | defmodule Unlock.DynamicIRVE.FeedWorker method start_link (line 14) | def start_link({parent_id, %Unlock.Config.Item.Generic.HTTP{} = feed}) do method via (line 21) | defp via(key), do: {:via, Registry, {Unlock.DynamicIRVE.Registry, key}} method init (line 24) | def init({parent_id, feed}) do method handle_info (line 30) | def handle_info(:tick, {parent_id, feed} = state) do method fetch_and_process (line 37) | defp fetch_and_process(parent_id, feed) do method record_error (line 65) | defp record_error(parent_id, slug, message) do method schedule_tick (line 76) | defp schedule_tick, do: Process.send_after(self(), :tick, tick_interva... method tick_interval (line 78) | defp tick_interval, do: Application.fetch_env!(:transport, :dynamic_ir... method expected_columns (line 80) | defp expected_columns, do: Transport.IRVE.DynamicIRVESchema.build_sche... FILE: apps/transport/lib/unlock/dynamic_irve/renderer.ex class Unlock.DynamicIRVE.Renderer (line 1) | defmodule Unlock.DynamicIRVE.Renderer method aggregate (line 14) | def aggregate(item) do method render (line 20) | def render(df, format, opts) do method tagged_df (line 27) | defp tagged_df(parent_id, feed) do method concat (line 37) | defp concat([]), do: nil method concat (line 38) | defp concat(dfs), do: DataFrame.concat_rows(dfs) method apply_limit (line 40) | defp apply_limit(df, nil), do: df method columns (line 45) | defp columns(false), do: Transport.IRVE.DynamicIRVESchema.build_schema... method columns (line 46) | defp columns(true), do: columns(false) ++ ["origin"] method dump (line 48) | defp dump(df, :csv), do: {DataFrame.dump_csv!(df), "text/csv", "csv"} method dump (line 49) | defp dump(df, :parquet), do: {DataFrame.dump_parquet!(df), "applicatio... FILE: apps/transport/lib/unlock/dynamic_irve_supervisor.ex class Unlock.DynamicIRVESupervisor (line 1) | defmodule Unlock.DynamicIRVESupervisor method start_link (line 13) | def start_link(_opts) do method init (line 18) | def init(_opts) do method sync_feeds (line 44) | def sync_feeds do method running_feed_pollers (line 59) | def running_feed_pollers do method initial_sync (line 72) | defp initial_sync do method stop_all (line 76) | defp stop_all(supervisor) do method start_feed (line 82) | defp start_feed(parent_id, feed) do FILE: apps/transport/lib/unlock/enforce_ttl.ex class Unlock.EnforceTTL (line 1) | defmodule Unlock.EnforceTTL method start_link (line 20) | def start_link(_opts) do method init (line 25) | def init(state) do method handle_info (line 31) | def handle_info(:work, state) do method enforce_ttl (line 41) | defp enforce_ttl(key, {:ok, ttl}) do method ttl_config_value (line 50) | defp ttl_config_value(cache_key) do method proxy_config (line 55) | defp proxy_config(cache_key) do method proxy_config_item (line 67) | def proxy_config_item(config, [identifier]) do method proxy_config_item (line 73) | def proxy_config_item(config, [identifier, sub_identifier]) do method schedule_work (line 87) | defp schedule_work do FILE: apps/transport/lib/unlock/gunzip_tools.ex class Unlock.GunzipTools (line 1) | defmodule Unlock.GunzipTools method maybe_gunzip (line 10) | def maybe_gunzip(body, headers) do method get_header (line 21) | def get_header(headers, key) do method lowercase_headers (line 25) | def lowercase_headers(headers) do FILE: apps/transport/lib/unlock/http_client.ex class Unlock.HTTP (line 1) | defmodule Unlock.HTTP class Response (line 8) | defmodule Response class Client (line 17) | defmodule Client method impl (line 35) | def impl, do: Application.fetch_env!(:transport, :unlock_http_client) class FinchImpl (line 38) | defmodule FinchImpl method stream! (line 45) | def stream!(url, headers, path) do method get! (line 79) | def get!(url, headers, options \\ []) do method do_get! (line 84) | defp do_get!(_url, _headers, 0 = _max_redirects) do method post! (line 123) | def post!(url, headers, body) do FILE: apps/transport/lib/unlock/params.ex class Unlock.Params (line 1) | defmodule Unlock.Params method to_boolean (line 4) | def to_boolean(nil), do: false method to_boolean (line 5) | def to_boolean("0"), do: false method to_boolean (line 6) | def to_boolean("1"), do: true method to_nil_or_integer (line 8) | def to_nil_or_integer(nil), do: nil method to_nil_or_integer (line 9) | def to_nil_or_integer(s), do: String.to_integer(s) FILE: apps/transport/lib/unlock/plugs/token_auth.ex class Unlock.Plugs.TokenAuth (line 1) | defmodule Unlock.Plugs.TokenAuth method init (line 16) | def init(default), do: default method call (line 18) | def call(%Plug.Conn{} = conn, _) do method enabled? (line 26) | defp enabled?, do: Application.fetch_env!(:transport, :unlock_token_au... method do_call (line 28) | defp do_call(%Plug.Conn{} = conn) do method find_client (line 51) | defp find_client(_), do: {:ok, nil} method log_request (line 53) | defp log_request(%Plug.Conn{} = conn, %DB.Token{} = token) do method log_request (line 66) | defp log_request(%Plug.Conn{}, nil), do: :ok FILE: apps/transport/lib/unlock/router.ex class Unlock.Router (line 1) | defmodule Unlock.Router FILE: apps/transport/lib/unlock/shared.ex class Unlock.Shared (line 1) | defmodule Unlock.Shared method default_cache_expiration_seconds (line 6) | def default_cache_expiration_seconds, do: 60 method cache_prefix (line 8) | def cache_prefix, do: "resource:" method cache_separator (line 9) | def cache_separator, do: ":" method cache_key (line 10) | def cache_key(resource_slug), do: "#{cache_prefix()}#{resource_slug}" method cache_key (line 12) | def cache_key(resource_slug, sub_item_identifier), method cache_name (line 15) | def cache_name, do: Unlock.Cachex method cache_entry (line 16) | def cache_entry(cache_key), do: Cachex.get!(cache_name(), cache_key) method cache_ttl (line 17) | def cache_ttl(cache_key), do: Cachex.ttl(cache_name(), cache_key) method cache_keys (line 19) | def cache_keys do FILE: apps/transport/lib/unlock/siri.ex class Unlock.SIRI (line 1) | defmodule Unlock.SIRI method parse_incoming (line 11) | def parse_incoming(body) do class RequestorRefReplacer (line 16) | defmodule RequestorRefReplacer method replace_requestor_ref (line 53) | def replace_requestor_ref(_node, _new_requestor_ref, seen_requestor_re... method tag_without_namespace (line 89) | def tag_without_namespace(tag) do FILE: apps/transport/lib/unlock/telemetry.ex class Unlock.Telemetry (line 1) | defmodule Unlock.Telemetry method proxy_request_types (line 8) | def proxy_request_types, do: @proxy_request_types method proxy_request_event_names (line 13) | def proxy_request_event_names, do: @proxy_request_types |> Enum.map(&p... method target_for_identifier (line 22) | def target_for_identifier([item_identifier, sub_item_identifier]) do FILE: apps/transport/lib/unlock/views/error_view.ex class Unlock.ErrorView (line 1) | defmodule Unlock.ErrorView method render (line 2) | def render("500.html", _assigns) do FILE: apps/transport/lib/unlock/xml_helper.ex class XMLHelper (line 1) | defmodule XMLHelper method unnamespace (line 5) | def unnamespace(tag), do: tag |> String.split(":") |> List.last() FILE: apps/transport/lib/validators/enroute_chouette_valid_client.ex class Transport.EnRouteChouetteValidClient (line 20) | defmodule Transport.EnRouteChouetteValidClient class Transport.EnRouteChouetteValidClient.Wrapper (line 1) | defmodule Transport.EnRouteChouetteValidClient.Wrapper method impl (line 17) | def impl, do: Application.get_env(:transport, :enroute_validator_cli... method create_a_validation (line 29) | def create_a_validation(filepath, rule_set \\ "enroute:starter-kit") do method get_a_validation (line 43) | def get_a_validation(validation_id) do method get_elapsed! (line 68) | defp get_elapsed!(response) do method get_datetime! (line 74) | defp get_datetime!(map, key) do method get_messages (line 87) | def get_messages(validation_id) do method make_file_part (line 94) | defp make_file_part(field_name, filepath) do method validation_url (line 98) | defp validation_url(validation_id) do method http_client (line 102) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method auth_headers (line 104) | defp auth_headers do FILE: apps/transport/lib/validators/gbfs_validator.ex class Transport.Validators.GBFSValidator (line 1) | defmodule Transport.Validators.GBFSValidator method validate_and_save (line 9) | def validate_and_save(%DB.Resource{url: url, format: "gbfs", id: resou... method validator_name (line 34) | def validator_name, do: @github_repository method validator_command (line 36) | defp validator_command, do: Application.fetch_env!(:transport, :gbfs_v... method digest (line 45) | def digest(%{} = validation_result) do method outdated? (line 50) | def outdated?(_multi_validation), do: nil FILE: apps/transport/lib/validators/gtfs_rt_validator.ex class Transport.Validators.GTFSRT (line 1) | defmodule Transport.Validators.GTFSRT method id_mismatch_error_codes (line 19) | def id_mismatch_error_codes, do: @id_mismatch_error_codes method critical_errors? (line 25) | def critical_errors?(%DB.MultiValidation{result: %{"errors" => errors}... method critical_errors? (line 34) | def critical_errors?(%DB.MultiValidation{result: nil}), do: false method validator_name (line 37) | def validator_name, do: "gtfs-realtime-validator" method validate_and_save (line 40) | def validate_and_save(%Dataset{} = dataset), do: run_validate_and_save... method validate_and_save (line 41) | def validate_and_save(%Resource{format: "gtfs-rt"} = resource), do: ru... method run_validate_and_save (line 43) | defp run_validate_and_save(dataset_or_resource) do method run_validator_and_save (line 59) | defp run_validator_and_save({gtfs_resource, rt_resource, {:ok, gtfs_rt... method validator_arguments (line 95) | def validator_arguments(gtfs_path, gtfs_rt_path, opts \\ []) do method run_validator (line 124) | def run_validator({binary_path, args}) do method convert_validator_report (line 130) | def convert_validator_report(path, opts \\ []) do method get_max_severity_error (line 182) | def get_max_severity_error(%{"errors" => errors}), do: get_max_severit... method get_max_severity_error (line 184) | def get_max_severity_error([]), do: nil method get_max_severity_error (line 186) | def get_max_severity_error(errors) do method build_validation_details (line 199) | def build_validation_details( method fatal_report (line 220) | def fatal_report do method up_to_date_gtfs_resources (line 239) | def up_to_date_gtfs_resources(%Resource{dataset_id: dataset_id}), method up_to_date_gtfs_resources (line 242) | def up_to_date_gtfs_resources(%Dataset{id: dataset_id}) do method gtfs_rt_resources (line 255) | def gtfs_rt_resources(%Resource{id: resource_id, dataset_id: dataset_i... method gtfs_rt_resources (line 278) | def gtfs_rt_resources(%Dataset{id: dataset_id} = dataset) do method gtfs_rt_and_gtfs_resources (line 305) | defp gtfs_rt_and_gtfs_resources(gtfs_rt_resources, gtfs_resources) do method insert_multi_validation (line 319) | defp insert_multi_validation( method delete_tmp_files (line 340) | defp delete_tmp_files(%Resource{format: "GTFS"} = resource) do method delete_tmp_files (line 345) | defp delete_tmp_files(%Resource{format: "gtfs-rt"} = resource) do method snapshot_gtfs_rts (line 352) | defp snapshot_gtfs_rts(resources) do method snapshot_gtfs_rt (line 358) | defp snapshot_gtfs_rt(%Resource{format: "gtfs-rt"} = resource) do method download_latest_gtfs (line 368) | defp download_latest_gtfs(%ResourceHistory{payload: %{"permanent_url" ... method download_resource (line 376) | defp download_resource(%Resource{id: resource_id, url: url, is_availab... method process_download (line 392) | defp process_download({:error, message}, %Resource{id: resource_id}) do method process_download (line 397) | defp process_download({:ok, tmp_path}, %Resource{} = resource) do method download_path (line 403) | def download_path(%Resource{id: resource_id}) do method remove_file (line 415) | defp remove_file(path), do: File.rm(path) method digest (line 424) | def digest(%{} = validation_result) do method outdated? (line 429) | def outdated?(_multi_validation), do: nil FILE: apps/transport/lib/validators/gtfs_transport_validator.ex class Transport.Validators.GTFSTransport (line 1) | defmodule Transport.Validators.GTFSTransport method validate_and_save (line 16) | def validate_and_save(%DB.ResourceHistory{ method validator_name (line 56) | def validator_name, do: @validator_name method validate (line 60) | def validate(url), do: Shared.Validation.GtfsValidator.Wrapper.impl().... method validation_result (line 62) | defp validation_result(validations) do method command (line 69) | def command(url), do: Shared.Validation.GtfsValidator.remote_gtfs_vali... method severity_level (line 72) | def severity_level(key) do method format_severity (line 99) | def format_severity(key, count) do method issue_type (line 124) | def issue_type([]), do: nil method issue_type (line 125) | def issue_type([h | _]), do: h["issue_type"] method get_issues (line 142) | def get_issues(%{} = validation_result, %{"issue_type" => issue_type}) do method get_issues (line 146) | def get_issues(%{} = validation_result, _) do method get_issues (line 153) | def get_issues(_, _), do: [] method summary (line 166) | def summary(%{} = validation_result) do method digest (line 187) | def digest(%{} = validation_result) do method count_by_severity (line 211) | def count_by_severity(%{} = validation_result) do method count_by_severity (line 217) | def count_by_severity(_), do: %{} method count_max_severity (line 233) | def count_max_severity(%{} = validation_result) do method no_error? (line 242) | def no_error?(severity), do: @no_error == severity method mine? (line 245) | def mine?(%{validator: validator}), do: validator == validator_name() method mine? (line 246) | def mine?(_), do: false method get_max_severity_error (line 262) | def get_max_severity_error(%{} = validations) do method get_max_severity_error (line 267) | def get_max_severity_error(_), do: nil method issues_short_translation (line 270) | def issues_short_translation, method outdated? (line 321) | def outdated?(%DB.MultiValidation{validator: @validator_name} = multi_... method outdated? (line 325) | def outdated?(_), do: nil method find_tags (line 328) | def find_tags(metadata) do method find_tags_from_metadata (line 334) | def find_tags_from_metadata(metadata) do method existing_gtfs_tags (line 354) | def existing_gtfs_tags, method find_modes (line 366) | def find_modes(%{"modes" => modes}), do: modes method find_modes (line 367) | def find_modes(_), do: [] method has_fares_tag (line 371) | def has_fares_tag(%{"has_fares" => true}), do: ["tarifs"] method has_fares_tag (line 372) | def has_fares_tag(_), do: [] method has_shapes_tag (line 375) | def has_shapes_tag(%{"has_shapes" => true}), do: ["tracés de lignes"] method has_shapes_tag (line 376) | def has_shapes_tag(_), do: [] method has_odt_tag? (line 380) | def has_odt_tag?(value), do: has_odt_tag(value) != [] method has_odt_tag (line 383) | def has_odt_tag(%{"some_stops_need_phone_agency" => true}), do: ["tran... method has_odt_tag (line 384) | def has_odt_tag(%{"some_stops_need_phone_driver" => true}), do: ["tran... method has_odt_tag (line 385) | def has_odt_tag(_), do: [] method has_route_colors_tag (line 404) | def has_route_colors_tag(_), do: [] method has_pathways_tag (line 407) | def has_pathways_tag(%{"has_pathways" => true}), do: ["description des... method has_pathways_tag (line 408) | def has_pathways_tag(_), do: [] method has_bike_accessibility (line 414) | def has_bike_accessibility(_), do: [] method has_wheelchair_accessibility (line 423) | def has_wheelchair_accessibility(_), do: [] method gtfs_base_tags (line 426) | def gtfs_base_tags, FILE: apps/transport/lib/validators/jsonschema_validata_json_validator.ex class Transport.Validators.ValidataJson (line 1) | defmodule Transport.Validators.ValidataJson method base_url (line 40) | def base_url, do: "https://json.validator.validata.fr" |> URI.new!() method validation_url (line 48) | def validation_url(schema_url, data_url) do method poll_url (line 55) | def poll_url(job_id), method perform_validation (line 58) | def perform_validation(schema_url, url) do method get_api_result (line 72) | def get_api_result(job_id) do method poll_api_result (line 80) | def poll_api_result(url, nb_tries) do method poll_interval (line 108) | def poll_interval(_), do: 20_000 method get_results (line 110) | def get_results(result_address) do method validator_name (line 123) | def validator_name, do: "Validata JSON" method validator_version (line 124) | def validator_version, do: "0.1.0" method digest (line 132) | def digest(validation_result) do method outdated? (line 137) | def outdated?(_multi_validation), do: nil FILE: apps/transport/lib/validators/jsonschema_validator.ex class Transport.Validators.JSONSchema (line 19) | defmodule Transport.Validators.JSONSchema class Transport.Validators.JSONSchema.Wrapper (line 1) | defmodule Transport.Validators.JSONSchema.Wrapper method impl (line 5) | defp impl, do: Application.get_env(:transport, :jsonschema_validator... method load_jsonschema_for_schema (line 9) | def load_jsonschema_for_schema(schema_name), method load_jsonschema_for_schema (line 12) | def load_jsonschema_for_schema(schema_name, schema_version), method validate (line 16) | def validate(schema, target), do: impl().validate(schema, target) method load_jsonschema_for_schema (line 50) | def load_jsonschema_for_schema(schema_name, schema_version \\ "latest"... method ensure_schema_is_jsonschema! (line 62) | def ensure_schema_is_jsonschema!(schema_name) do method validate (line 80) | def validate(schema, payload) do method json_schemas_names (line 95) | defp json_schemas_names, do: Map.keys(schemas_by_type("jsonschema")) method http_client (line 96) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method perform_validation (line 121) | def perform_validation(schema_name, schema_version, url) do method normalize_validation_result (line 128) | def normalize_validation_result(nil), do: %{"validation_performed" => ... method normalize_validation_result (line 130) | def normalize_validation_result(%{"has_errors" => _, "errors_count" =>... method validator_name (line 134) | def validator_name, do: "EXJSONSchema" method validator_version (line 135) | def validator_version, do: to_string(Application.spec(:ex_json_schema,... method digest (line 143) | def digest(validation_result) do method outdated? (line 148) | def outdated?(_multi_validation), do: nil class ErrorFormatter (line 32) | defmodule ErrorFormatter method format (line 41) | def format(errors) do FILE: apps/transport/lib/validators/mobilitydata_gtfs_validator.ex class Transport.Validators.MobilityDataGTFSValidator (line 1) | defmodule Transport.Validators.MobilityDataGTFSValidator method validator_name (line 22) | def validator_name, do: @validator_name method outdated? (line 25) | def outdated?(%DB.MultiValidation{validator: @validator_name} = mv), method outdated? (line 28) | def outdated?(_), do: nil method validate_and_save (line 32) | def validate_and_save(%DB.ResourceHistory{id: resource_history_id, pay... method validate_and_save (line 55) | def validate_and_save(gtfs_url), do: run_validation(gtfs_url) method run_validation (line 57) | defp run_validation(url) do method empty_to_nil (line 83) | defp empty_to_nil(""), do: nil method empty_to_nil (line 84) | defp empty_to_nil(value), do: value method github_validator_version (line 86) | def github_validator_version do method command (line 99) | def command(job_id) do method poll_validation_results (line 103) | defp poll_validation_results(job_id, attempt \\ 1) method poll_validation_results (line 105) | defp poll_validation_results(job_id, 60 = _attempt) do method poll_validation_results (line 110) | defp poll_validation_results(job_id, attempt) do method mine? (line 130) | def mine?(%{validator: validator}), do: validator == validator_name() method mine? (line 131) | def mine?(_), do: false method digest (line 145) | def digest(%{"notices" => notices}), do: digest(notices) method digest (line 147) | def digest(validation_result) do method summary (line 160) | def summary(validation_result) do method severity_level (line 170) | def severity_level(key) do method count_by_severity (line 185) | def count_by_severity(validation_result) do method count_max_severity (line 209) | def count_max_severity(validation_result) do method get_max_severity_error (line 229) | def get_max_severity_error(validation_result) do method no_error? (line 240) | def no_error?(%{severity: severity}), do: no_error?(severity) method no_error? (line 241) | def no_error?(severity), do: severity == @no_error method format_severity (line 257) | def format_severity(key, count) do method rule_for_code (line 281) | def rule_for_code(code), do: Map.fetch!(@rules, code) method validator_client (line 283) | defp validator_client, do: Transport.Validators.MobilityDataGTFSValida... method http_client (line 285) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method increment_counter (line 287) | defp increment_counter(status), do: Appsignal.increment_counter("mobil... FILE: apps/transport/lib/validators/mobilitydata_gtfs_validator_client.ex class Transport.Validators.MobilityDataGTFSValidatorClient (line 14) | defmodule Transport.Validators.MobilityDataGTFSValidatorClient class Transport.Validators.MobilityDataGTFSValidatorClient.Wrapper (line 1) | defmodule Transport.Validators.MobilityDataGTFSValidatorClient.Wrapper method impl (line 11) | def impl, do: Application.get_env(:transport, :mobilitydata_gtfs_val... method create_a_validation (line 23) | def create_a_validation(gtfs_url) do method get_a_validation (line 42) | def get_a_validation(job_id) do method report_html_url (line 78) | def report_html_url(job_id), do: @results_base_url <> "/#{job_id}/repo... method execution_result_url (line 80) | defp execution_result_url(job_id), do: @results_base_url <> "/#{job_id... method report_url (line 81) | defp report_url(job_id), do: @results_base_url <> "/#{job_id}/report.j... method system_errors_url (line 82) | defp system_errors_url(job_id), do: @results_base_url <> "/#{job_id}/s... method http_client (line 84) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method http_headers (line 86) | defp http_headers do FILE: apps/transport/lib/validators/netex/metadata_extractor.ex class Transport.Validators.NeTEx.MetadataExtractor (line 1) | defmodule Transport.Validators.NeTEx.MetadataExtractor method extract (line 9) | def extract(filepath) do method extract_validity_dates (line 13) | def extract_validity_dates(filepath) do method describe_content (line 28) | def describe_content(filepath) do method no_validity_dates (line 72) | defp no_validity_dates, do: %{"no_validity_dates" => true} method validity_dates (line 74) | defp validity_dates(filepath) do method validity_dates_from_calendars (line 82) | defp validity_dates_from_calendars(filepath) do method validity_dates_from_service_calendars (line 86) | defp validity_dates_from_service_calendars(filepath) do method run_parser (line 90) | defp run_parser(filepath, parser, empty \\ [], msum \\ &Kernel.++/2) do method dates_range (line 96) | defp dates_range([], _, _), do: nil method dates_range (line 98) | defp dates_range(values, start_key, end_key) do method flatten (line 105) | defp flatten(per_files, empty, msum) do method uniq (line 114) | defp uniq(list), do: list |> MapSet.new() |> MapSet.to_list() FILE: apps/transport/lib/validators/netex/results_adapter.ex class Transport.Validators.NeTEx.ResultsAdapter (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapter method resolve (line 20) | def resolve("0.2.2"), do: Transport.Validators.NeTEx.ResultsAdapters.V... method resolve (line 21) | def resolve("0.2.1"), do: Transport.Validators.NeTEx.ResultsAdapters.V... method resolve (line 22) | def resolve("0.2.0"), do: Transport.Validators.NeTEx.ResultsAdapters.V... method resolve (line 23) | def resolve(_), do: Transport.Validators.NeTEx.ResultsAdapters.V0_1_0 FILE: apps/transport/lib/validators/netex/results_adapters/commons.ex class Transport.Validators.NeTEx.ResultsAdapters.Commons (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.Commons method to_dataframe (line 20) | def to_dataframe(errors, extra_attributes_fun) do method project_error (line 26) | defp project_error(entry, extra_attributes_fun) do method build_mandatory_attributes (line 36) | defp build_mandatory_attributes(entry) do method build_resource_attributes (line 45) | defp build_resource_attributes(resource) do method prefix_keys (line 56) | defp prefix_keys(map, prefix) do method rename_keys (line 60) | defp rename_keys(map, fun) do method build_with_default_attributes (line 67) | defp build_with_default_attributes(defaults, attributes) do method to_binary (line 71) | def to_binary(%Explorer.DataFrame{} = df) do method slice (line 79) | defp slice(df, %Scrivener.Config{} = config) do method page (line 86) | defp page(%Scrivener.Config{} = config) do method to_issues (line 92) | defp to_issues(entries), do: Enum.map(entries, &to_issue/1) method to_issue (line 94) | defp to_issue(%{} = entry) do method drop_empty_values (line 109) | defp drop_empty_values(map), do: Map.filter(map, fn {_key, value} -> v... method get_values (line 111) | def get_values(%Explorer.DataFrame{} = df, column) do method count_and_slice (line 122) | def count_and_slice(%Explorer.DataFrame{} = df, pagination_config) do method has_column? (line 133) | def has_column?(df, column_name) do method summarize_xsd_errors (line 139) | def summarize_xsd_errors(df) do FILE: apps/transport/lib/validators/netex/results_adapters/v0_1_0.ex class Transport.Validators.NeTEx.ResultsAdapters.V0_1_0 (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_1_0 method count_max_severity (line 35) | def count_max_severity(%{} = validation_result) do method no_error? (line 45) | def no_error?(severity), do: @no_error == severity method severity_level (line 48) | def severity_level(key) do method format_severity (line 70) | def format_severity(key, count) do method count_by_severity (line 100) | def count_by_severity(%{} = validation_result) do method count_by_severity (line 106) | def count_by_severity(_), do: %{} method summary (line 122) | def summary(%{} = validation_result) do method issues_short_translation_per_code (line 143) | defp issues_short_translation_per_code(code) do method issues_short_translation (line 152) | defp issues_short_translation, method issue_type (line 169) | def issue_type([]), do: nil method issue_type (line 170) | def issue_type([h | _]), do: h["code"] || @unknown_code method get_issues (line 182) | def get_issues( method get_issues (line 200) | def get_issues(%Explorer.DataFrame{} = df, %{}, %Scrivener.Config{} = ... method get_issues (line 206) | def get_issues(_, _, _), do: {%{"issue_type" => ""}, {0, []}} method pick_default_issue_type (line 208) | def pick_default_issue_type(%Explorer.DataFrame{} = df) do method get_codes (line 212) | def get_codes(%Explorer.DataFrame{} = df), do: Commons.get_values(df, ... method order_issues_by_location (line 214) | def order_issues_by_location(%Explorer.DataFrame{} = df) do method french_profile_compliance_check (line 220) | def french_profile_compliance_check, do: :none method french_profile (line 223) | def french_profile, do: nil method digest (line 226) | def digest(validation_result) do method to_dataframe (line 235) | def to_dataframe(errors), do: Commons.to_dataframe(errors, fn _ -> %{}... method to_binary_result (line 238) | def to_binary_result(result) do method summarize_xsd_errors (line 247) | def summarize_xsd_errors(_binary_result), do: [] FILE: apps/transport/lib/validators/netex/results_adapters/v0_2_0.ex class Transport.Validators.NeTEx.ResultsAdapters.V0_2_0 (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_2_0 method get_max_severity_error (line 38) | def get_max_severity_error(validation_result) do method format_severity (line 81) | def format_severity(key, count) do method index_messages (line 112) | def index_messages(messages), do: Enum.group_by(messages, &index_messa... method index_message (line 114) | def index_message(message), do: message |> get_code() |> categorize() method categorize (line 116) | defp categorize(code) do method get_code (line 124) | defp get_code(%{"code" => code}), do: code method get_code (line 125) | defp get_code(%{}), do: @unknown_code method summary (line 141) | def summary(%{} = validation_result) do method get_issues (line 170) | def get_issues( method get_issues (line 188) | def get_issues(%Explorer.DataFrame{} = df, %{}, %Scrivener.Config{} = ... method get_issues (line 194) | def get_issues(_, _, _), do: {%{"issues_category" => @xsd_schema_categ... method pick_default_category (line 196) | def pick_default_category(%Explorer.DataFrame{} = df), do: pick_defaul... method pick_default_category (line 198) | def pick_default_category(%Explorer.DataFrame{} = df, categories_prefe... method get_categories (line 208) | def get_categories(%Explorer.DataFrame{} = df), do: Commons.get_values... method french_profile (line 216) | def french_profile, do: nil method digest (line 219) | def digest(validation_result) do method to_dataframe (line 228) | def to_dataframe(errors) do method build_synthetic_attributes (line 232) | defp build_synthetic_attributes(mandatory_attributes) do method to_binary_result (line 239) | def to_binary_result(result) do method summarize_xsd_errors (line 248) | def summarize_xsd_errors(binary_result) do FILE: apps/transport/lib/validators/netex/results_adapters/v0_2_1.ex class Transport.Validators.NeTEx.ResultsAdapters.V0_2_1 (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_2_1 method index_messages (line 59) | def index_messages(messages), do: Enum.group_by(messages, &index_messa... method index_message (line 61) | def index_message(message), do: message |> get_code() |> categorize() method categorize (line 63) | defp categorize(code) do method get_code (line 71) | defp get_code(%{"code" => code}), do: code method get_code (line 72) | defp get_code(%{}), do: @unknown_code method summary (line 90) | def summary(%{} = validation_result) do method get_issues (line 119) | def get_issues( method get_issues (line 137) | def get_issues(%Explorer.DataFrame{} = df, %{}, %Scrivener.Config{} = ... method get_issues (line 143) | def get_issues(_, _, _), do: {%{"issues_category" => @xsd_schema_categ... method pick_default_category (line 147) | def pick_default_category(%Explorer.DataFrame{} = df) do method french_profile_compliance_check (line 156) | def french_profile_compliance_check, do: :partial method french_profile (line 159) | def french_profile, do: Transport.NeTEx.FrenchProfile.V1 method digest (line 162) | def digest(validation_result) do method to_dataframe (line 171) | def to_dataframe(errors) do method build_synthetic_attributes (line 175) | defp build_synthetic_attributes(mandatory_attributes) do method to_binary_result (line 182) | def to_binary_result(result) do FILE: apps/transport/lib/validators/netex/results_adapters/v0_2_2.ex class Transport.Validators.NeTEx.ResultsAdapters.V0_2_2 (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_2_2 method french_profile_compliance_check (line 11) | def french_profile_compliance_check, do: :partial method french_profile (line 14) | def french_profile, do: Transport.NeTEx.FrenchProfile.V2 FILE: apps/transport/lib/validators/netex/validator.ex class Transport.Validators.NeTEx.Validator (line 1) | defmodule Transport.Validators.NeTEx.Validator method poll_interval (line 30) | def poll_interval(_), do: 20 method validator_name (line 35) | def validator_name, do: @validator_name method validator_version (line 38) | def validator_version, do: "0.2.1" method validate_and_save (line 41) | def validate_and_save(%DB.ResourceHistory{} = resource_history) do method validate_resource_history (line 47) | def validate_resource_history(resource_history, filepath) do method enqueue_poller (line 54) | def enqueue_poller(resource_history_id, validation_id, metadata, attem... method handle_validation_results (line 66) | def handle_validation_results(validation_results, resource_history_id,... method validate (line 126) | def validate(url) do method poll_validation (line 140) | def poll_validation(validation_id, metadata, retries) do method handle_validation_results_on_demand (line 144) | defp handle_validation_results_on_demand(validation_results, metadata) do method with_resource_file (line 188) | def with_resource_file(resource_history, closure) do method with_url (line 196) | def with_url(url, closure) do method with_tmp_file (line 201) | def with_tmp_file(url, filepath, closure) do method http_client (line 208) | defp http_client, do: Transport.Req.impl() method tmp_path (line 210) | defp tmp_path(%DB.ResourceHistory{id: resource_history_id}) do method tmp_path (line 214) | defp tmp_path(_other) do method insert_validation_results (line 218) | def insert_validation_results(resource_history_id, result_url, metadat... method features_list (line 243) | defp features_list(%{} = features) do method validate_with_enroute (line 247) | defp validate_with_enroute(filepath, metadata) do method setup_validation (line 251) | defp setup_validation(filepath), do: client().create_a_validation(file... method poll_validation_results (line 253) | def poll_validation_results(validation_id, metadata, retries) do method outdated? (line 278) | def outdated?(%DB.MultiValidation{validator: @validator_name} = multi_... method outdated? (line 282) | def outdated?(_), do: nil method client (line 284) | defp client do method notify_success (line 288) | defp notify_success, do: Appsignal.increment_counter("enroute_chouette... method notify_invalid_api_call (line 290) | defp notify_invalid_api_call, do: Appsignal.increment_counter("enroute... method notify_invalid_api_call (line 292) | defp notify_invalid_api_call(resource_history_id), method notify_timeout (line 298) | defp notify_timeout, do: Appsignal.increment_counter("enroute_chouette... method notify_timeout (line 300) | defp notify_timeout(resource_history_id), FILE: apps/transport/lib/validators/tableschema_validator.ex class Transport.Validators.TableSchema (line 18) | defmodule Transport.Validators.TableSchema class Transport.Validators.TableSchema.Wrapper (line 1) | defmodule Transport.Validators.TableSchema.Wrapper method impl (line 5) | defp impl, do: Application.get_env(:transport, :tableschema_validato... method validate (line 9) | def validate(schema_name, url), do: impl().validate(schema_name, url) method validate (line 10) | def validate(schema_name, url, schema_version), do: impl().validate(... method validator_api_url (line 13) | def validator_api_url(schema_name, url, schema_version) do method validata_web_url (line 70) | def validata_web_url(schema_name) do method build_report (line 78) | defp build_report(%{ method build_report (line 103) | defp build_report(%{"error" => %{"type" => "source-error"}}), do: :sou... method build_report (line 105) | defp build_report(_), do: nil method structure_error? (line 107) | defp structure_error?(%{"tags" => tags, "type" => type} = _row) do method ensure_schema_is_tableschema! (line 115) | defp ensure_schema_is_tableschema!(schema_name) do method tableschema_names (line 121) | defp tableschema_names, do: Map.keys(schemas_by_type("tableschema")) method http_client (line 122) | defp http_client, do: Transport.Shared.Wrapper.HTTPoison.impl() method validator_name (line 150) | def validator_name, do: "validata-api" method perform_validation (line 152) | def perform_validation(schema_name, url, schema_version) do method normalize_validation_result (line 162) | def normalize_validation_result(nil), do: %{"validation_performed" => ... method validator_version (line 164) | def validator_version(%{@validator_version_key_name => validata_api_ve... method validator_version (line 165) | def validator_version(nil), do: nil method digest (line 173) | def digest(validation_result) do method outdated? (line 178) | def outdated?(_multi_validation), do: nil FILE: apps/transport/lib/validators/validator.ex class Transport.Validators.Validator (line 1) | defmodule Transport.Validators.Validator class Transport.Validators.Dummy (line 19) | defmodule Transport.Validators.Dummy method validate_and_save (line 26) | def validate_and_save(_) do method validator_name (line 32) | def validator_name, do: "dummy validator" method outdated? (line 35) | def outdated?(_multi_validation), do: nil FILE: apps/transport/lib/validators/validator_selection.ex class Transport.ValidatorsSelection (line 1) | defmodule Transport.ValidatorsSelection method validators (line 8) | def validators(value), do: impl().validators(value) method validators_for_feature (line 9) | def validators_for_feature(feature), do: impl().validators_for_feature... method impl (line 11) | def impl, do: Application.get_env(:transport, :validator_selection) class Transport.ValidatorsSelection.Impl (line 14) | defmodule Transport.ValidatorsSelection.Impl method validators (line 27) | def validators(%DB.ResourceHistory{payload: payload} = resource_hist... method validators (line 35) | def validators(%DB.Resource{format: format, schema_name: schema_name... method validators (line 39) | def validators(%{format: "GTFS"}), do: [Validators.GTFSTransport] method validators (line 40) | def validators(%{format: "gtfs-rt"}), do: [Validators.GTFSRT] method validators (line 41) | def validators(%{format: "gbfs"}), do: [Validators.GBFSValidator] method validators (line 43) | def validators(%{format: "NeTEx"}) do method validators (line 64) | def validators(_), do: [] method validators_for_feature (line 92) | def validators_for_feature(:multi_validation_with_error_static_valid... method validators_for_feature (line 100) | def validators_for_feature(:multi_validation_with_error_realtime_val... method validators_for_feature (line 106) | def validators_for_feature(:stats_compute_aom_gtfs_max_severity), do... method netex_validator_enabled? (line 120) | defp netex_validator_enabled?, do: !Application.fetch_env!(:transpor... FILE: apps/transport/lib/zip.ex class Transport.ZipMetaDataExtractor (line 1) | defmodule Transport.ZipMetaDataExtractor method zip? (line 13) | def zip?(filepath) do method extract! (line 20) | def extract!(filepath) do method keep_keys (line 30) | def keep_keys(map, keys) do method keys (line 34) | defp keys do method enrich (line 44) | def enrich(entry, unzip) do FILE: apps/transport/mix.exs class Transport.Mixfile (line 1) | defmodule Transport.Mixfile method project (line 4) | def project do method application (line 34) | def application do method elixirc_paths (line 48) | defp elixirc_paths(:test), do: ["lib", "test/support"] method elixirc_paths (line 49) | defp elixirc_paths(_), do: ["lib"] method apple_silicon? (line 52) | defp apple_silicon? do method deps (line 59) | defp deps do FILE: apps/transport/priv/repo/migrations/20181121164437_create_region.exs class DB.Repo.Migrations.CreateRegion (line 1) | defmodule DB.Repo.Migrations.CreateRegion method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181121165604_create_aom.exs class DB.Repo.Migrations.CreateAom (line 1) | defmodule DB.Repo.Migrations.CreateAom method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181121170709_create_dataset.exs class DB.Repo.Migrations.CreateDataset (line 1) | defmodule DB.Repo.Migrations.CreateDataset method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181121171826_create_partner.exs class DB.Repo.Migrations.CreatePartner (line 1) | defmodule DB.Repo.Migrations.CreatePartner method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181204093045_add_included_in_dataset_to_datasets.exs class DB.Repo.Migrations.AddIncludedInDatasetToDatasets (line 1) | defmodule DB.Repo.Migrations.AddIncludedInDatasetToDatasets method up (line 6) | def up do method down (line 25) | def down do FILE: apps/transport/priv/repo/migrations/20181205100445_add_type_id_partner.exs class DB.Repo.Migrations.AddTypeIdPartner (line 1) | defmodule DB.Repo.Migrations.AddTypeIdPartner method up (line 4) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20181205134354_aom_postgis_geometry.exs class DB.Repo.Migrations.AomPostgisGeometry (line 1) | defmodule DB.Repo.Migrations.AomPostgisGeometry method up (line 4) | def up do method down (line 16) | def down do FILE: apps/transport/priv/repo/migrations/20181205163400_add_resources.exs class DB.Repo.Migrations.AddResources (line 1) | defmodule DB.Repo.Migrations.AddResources method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181205164605_migrate_validations.exs class DB.Repo.Migrations.MigrateValidations (line 1) | defmodule DB.Repo.Migrations.MigrateValidations method convert (line 6) | defp convert([id, validations, validation_date, download_url]) do method change (line 16) | def change do FILE: apps/transport/priv/repo/migrations/20181210164424_insee_aom_table.exs class DB.Repo.Migrations.InseeAomTable (line 1) | defmodule DB.Repo.Migrations.InseeAomTable method up (line 4) | def up do method down (line 36) | def down do FILE: apps/transport/priv/repo/migrations/20181211094634_migrate_format.exs class DB.Repo.Migrations.MigrateFormat (line 1) | defmodule DB.Repo.Migrations.MigrateFormat method change (line 6) | def change do FILE: apps/transport/priv/repo/migrations/20181211164714_add_title_resource.exs class DB.Repo.Migrations.AddTitleResource (line 1) | defmodule DB.Repo.Migrations.AddTitleResource method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20181212091910_commune_to_aom.exs class DB.Repo.Migrations.CommuneToAom (line 1) | defmodule DB.Repo.Migrations.CommuneToAom method up (line 4) | def up do method down (line 16) | def down do FILE: apps/transport/priv/repo/migrations/20181218123622_only_use_postgis.exs class DB.Repo.Migrations.OnlyUsePostgis (line 1) | defmodule DB.Repo.Migrations.OnlyUsePostgis method up (line 4) | def up do method down (line 20) | def down do FILE: apps/transport/priv/repo/migrations/20181220111337_move_metadata.exs class DB.Repo.Migrations.MoveMetadata (line 1) | defmodule DB.Repo.Migrations.MoveMetadata method up (line 4) | def up do method down (line 14) | def down do FILE: apps/transport/priv/repo/migrations/20190108103116_remove_region_dataset_aom.exs class DB.Repo.Migrations.RemoveRegionDatasetAom (line 1) | defmodule DB.Repo.Migrations.RemoveRegionDatasetAom method up (line 4) | def up do method down (line 16) | def down do FILE: apps/transport/priv/repo/migrations/20190130145745_rename_transit_types.exs class DB.Repo.Migrations.RenameTransitTypes (line 1) | defmodule DB.Repo.Migrations.RenameTransitTypes method up (line 4) | def up do method down (line 11) | def down do FILE: apps/transport/priv/repo/migrations/20190204155646_fix_region.exs class DB.Repo.Migrations.FixRegion (line 1) | defmodule DB.Repo.Migrations.FixRegion method up (line 4) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20190207164219_remove_empty_url.exs class DB.Repo.Migrations.RemoveEmptyUrl (line 1) | defmodule DB.Repo.Migrations.RemoveEmptyUrl method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190227165217_more_resource_metadata.exs class DB.Repo.Migrations.MoreResourceMetadata (line 1) | defmodule DB.Repo.Migrations.MoreResourceMetadata method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190402122703_add_has_realtime.exs class DB.Repo.Migrations.AddHasRealtime (line 1) | defmodule DB.Repo.Migrations.AddHasRealtime method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190408091202_validations_table.exs class DB.Repo.Migrations.ValidationsTable (line 1) | defmodule DB.Repo.Migrations.ValidationsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190424095327_add_dataset_activation.exs class DB.Repo.Migrations.AddDatasetActivation (line 1) | defmodule DB.Repo.Migrations.AddDatasetActivation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190425142259_add_resource_is_available.exs class DB.Repo.Migrations.AddResourceIsAvailable (line 1) | defmodule DB.Repo.Migrations.AddResourceIsAvailable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190506153738_add_dataset_document.exs class DB.Repo.Migrations.AddDatasetDocument (line 1) | defmodule DB.Repo.Migrations.AddDatasetDocument method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190509163526_delete_cascade_validations.exs class DB.Repo.Migrations.DeleteCascadeValidations (line 1) | defmodule DB.Repo.Migrations.DeleteCascadeValidations method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190516142725_search_commune.exs class DB.Repo.Migrations.SearchCommune (line 1) | defmodule DB.Repo.Migrations.SearchCommune method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190703092429_use_simple_index_search.exs class DB.Repo.Migrations.SearchCommune (line 1) | defmodule DB.Repo.Migrations.SearchCommune method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190910091521_change_siren.exs class DB.Repo.Migrations.ChangeSiren (line 1) | defmodule DB.Repo.Migrations.ChangeSiren method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20190911085235_add_resource_content_hash.exs class DB.Repo.Migrations.AddResourceSha (line 1) | defmodule DB.Repo.Migrations.AddResourceSha method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20191216144800_add_resource_tags.exs class DB.Repo.Migrations.AddResourceTags (line 1) | defmodule DB.Repo.Migrations.AddResourceTags method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200106094910_nb_reuses.exs class DB.Repo.Migrations.NbReuses (line 1) | defmodule DB.Repo.Migrations.NbReuses method change (line 5) | def change do FILE: apps/transport/priv/repo/migrations/20200110124026_unaccent.exs class DB.Repo.Migrations.Unaccent (line 1) | defmodule DB.Repo.Migrations.Unaccent method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200114101848_change_search_conf.exs class DB.Repo.Migrations.ChangeSearchConf (line 1) | defmodule DB.Repo.Migrations.ChangeSearchConf method up (line 4) | def up do method down (line 76) | def down do FILE: apps/transport/priv/repo/migrations/20200114143832_add_dataset_view.exs class DB.Repo.Migrations.AddDatasetView (line 1) | defmodule DB.Repo.Migrations.AddDatasetView method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200116092044_link_dataset_commune.exs class DB.Repo.Migrations.LinkDatasetCommune (line 1) | defmodule DB.Repo.Migrations.LinkDatasetCommune method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200116163306_more_pt.exs class DB.Repo.Migrations.MorePt (line 1) | defmodule DB.Repo.Migrations.MorePt method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200120092242_add_communes_to_view.exs class DB.Repo.Migrations.AddCommunesToView (line 1) | defmodule DB.Repo.Migrations.AddCommunesToView method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200120154256_dataset_associated_territory.exs class DB.Repo.Migrations.DatasetAssociatedTerritory (line 1) | defmodule DB.Repo.Migrations.DatasetAssociatedTerritory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200130152852_epci.exs class DB.Repo.Migrations.Epci (line 1) | defmodule DB.Repo.Migrations.Epci method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200212092113_materialized_geographic_view.exs class DB.Repo.Migrations.MaterializedGeographicView (line 1) | defmodule DB.Repo.Migrations.MaterializedGeographicView method up (line 9) | def up do method down (line 73) | def down do FILE: apps/transport/priv/repo/migrations/20200217142350_add_commune_region.exs class DB.Repo.Migrations.AddCommuneRegion (line 1) | defmodule DB.Repo.Migrations.AddCommuneRegion method up (line 4) | def up do method down (line 33) | def down do FILE: apps/transport/priv/repo/migrations/20200220141013_fuzzystrmatch.exs class DB.Repo.Migrations.Fuzzystrmatch (line 1) | defmodule DB.Repo.Migrations.Fuzzystrmatch method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200224093551_places_mat_view.exs class DB.Repo.Migrations.TestPlaces (line 1) | defmodule DB.Repo.Migrations.TestPlaces method up (line 4) | def up do method down (line 81) | def down do FILE: apps/transport/priv/repo/migrations/20200225140241_slug_constraint.exs class DB.Repo.Migrations.SlugConstraint (line 1) | defmodule DB.Repo.Migrations.SlugConstraint method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200311095433_correction_of_dataset_geographic_view.exs class DB.Repo.Migrations.CorrectionOfDatasetGeographicView (line 1) | defmodule DB.Repo.Migrations.CorrectionOfDatasetGeographicView method up (line 8) | def up do method down (line 72) | def down do FILE: apps/transport/priv/repo/migrations/20200420082026_validation_fields.exs class DB.Repo.Migrations.ValidationFields (line 1) | defmodule DB.Repo.Migrations.ValidationFields method up (line 4) | def up do method down (line 55) | def down do FILE: apps/transport/priv/repo/migrations/20200429171646_netex_conversion_date.exs class DB.Repo.Migrations.NetexConverionDate (line 1) | defmodule DB.Repo.Migrations.NetexConverionDate method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200505124346_validation_sha.exs class DB.Repo.Migrations.ValidationSha (line 1) | defmodule DB.Repo.Migrations.ValidationSha method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200527084259_community_resources.exs class DB.Repo.Migrations.CommunautaryResources (line 1) | defmodule DB.Repo.Migrations.CommunautaryResources method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200603103539_add_metadatas_for_on_the_fly_validations.exs class DB.Repo.Migrations.AddMetadatasForOnTheFlyValidations (line 1) | defmodule DB.Repo.Migrations.AddMetadatasForOnTheFlyValidations method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200603130643_description_text.exs class DB.Repo.Migrations.DescriptionText (line 1) | defmodule DB.Repo.Migrations.DescriptionText method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200608155921_rename_netex.exs class DB.Repo.Migrations.RenameNetex (line 1) | defmodule DB.Repo.Migrations.RenameNetex method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200610162056_geojson_content_hash.exs class DB.Repo.Migrations.GeojsonContentHash (line 1) | defmodule DB.Repo.Migrations.GeojsonContentHash method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200616101043_add_resource_filesize.exs class DB.Repo.Migrations.AddResourceFilesize (line 1) | defmodule DB.Repo.Migrations.AddResourceFilesize method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200622141231_create_import_logs_table.exs class DB.Repo.Migrations.CreateImportLogsTable (line 1) | defmodule DB.Repo.Migrations.CreateImportLogsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200623112618_import_logs_unlimited_text_length_logs_table.exs class DB.Repo.Migrations.ImportLogsUnlimitedTextLengthLogsTable (line 1) | defmodule DB.Repo.Migrations.ImportLogsUnlimitedTextLengthLogsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200623134041_create_validation_logs_table.exs class DB.Repo.Migrations.CreateValidationLogsTable (line 1) | defmodule DB.Repo.Migrations.CreateValidationLogsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200623162648_skipped_validation.exs class DB.Repo.Migrations.SkippedValidation (line 1) | defmodule DB.Repo.Migrations.SkippedValidation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200630154908_original_resource_url.exs class DB.Repo.Migrations.OriginalResourceUrl (line 1) | defmodule DB.Repo.Migrations.OriginalResourceUrl method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200703080414_resource_log_validation.exs class DB.Repo.Migrations.ResourceLogValidation (line 1) | defmodule DB.Repo.Migrations.ResourceLogValidation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200818124059_add_geojson_to_validation_data.exs class DB.Repo.Migrations.AddGeojsonToValidationData (line 1) | defmodule DB.Repo.Migrations.AddGeojsonToValidationData method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20200907134321_change_dataset_on_delete_behavior.exs class DB.Repo.Migrations.ChangeDatasetOnDeleteBehavior (line 1) | defmodule DB.Repo.Migrations.ChangeDatasetOnDeleteBehavior method up (line 4) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20200908085058_resource_datagouv_id.exs class DB.Repo.Migrations.ResourceDatagouvId (line 1) | defmodule DB.Repo.Migrations.ResourceDatagouvId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20201103174924_features_and_modes.exs class DB.Repo.Migrations.Features (line 1) | defmodule DB.Repo.Migrations.Features method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20201103183100_more_places.exs class DB.Repo.Migrations.MorePlaces (line 1) | defmodule DB.Repo.Migrations.MorePlaces method up (line 4) | def up do method down (line 113) | def down do FILE: apps/transport/priv/repo/migrations/20201112110459_update_aoms_fk.exs class DB.Repo.Migrations.UpdateAomsFk (line 1) | defmodule DB.Repo.Migrations.UpdateAomsFk method up (line 4) | def up do method down (line 18) | def down do FILE: apps/transport/priv/repo/migrations/20201209152013_add_indices.exs class DB.Repo.Migrations.AddIndices (line 1) | defmodule DB.Repo.Migrations.AddIndices method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20201214163517_stats_history.exs class DB.Repo.Migrations.StatsHistory (line 1) | defmodule DB.Repo.Migrations.StatsHistory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20210126172850_remove_refresh_places_resources_trigger.exs class DB.Repo.Migrations.RemoveRefreshPlacesResourcesTrigger (line 1) | defmodule DB.Repo.Migrations.RemoveRefreshPlacesResourcesTrigger method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20210512142927_add_discussion_timestamp.exs class DB.Repo.Migrations.AddDiscussionTimestamp (line 1) | defmodule DB.Repo.Migrations.AddDiscussionTimestamp method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20210615132842_charsharing_to_carpooling.exs class DB.Repo.Migrations.CharsharingToCarpooling (line 1) | defmodule DB.Repo.Migrations.CharsharingToCarpooling method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20210622150648_dataset_communes_on_delete.exs class DB.Repo.Migrations.DatasetCommunesOnDelete (line 1) | defmodule DB.Repo.Migrations.DatasetCommunesOnDelete method up (line 10) | def up do method down (line 24) | def down do method drop_materialized_view (line 38) | def drop_materialized_view do method recreate_materialized_view (line 44) | def recreate_materialized_view do FILE: apps/transport/priv/repo/migrations/20210623140048_add_nouvelle_caledonie.exs class Elixir.DB.Repo.Migrations.AddNouvelleCaledonie (line 1) | defmodule Elixir.DB.Repo.Migrations.AddNouvelleCaledonie method up (line 4) | def up do method down (line 10) | def down do FILE: apps/transport/priv/repo/migrations/20210630130031_add_resource_schema.exs class DB.Repo.Migrations.AddResourceSchema (line 1) | defmodule DB.Repo.Migrations.AddResourceSchema method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211006144855_rename_category_bike_path.exs class DB.Repo.Migrations.RenameCategoryBikePath (line 1) | defmodule DB.Repo.Migrations.RenameCategoryBikePath method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20211018122851_add_oban_jobs_table.exs class DB.Repo.Migrations.AddObanJobsTable (line 1) | defmodule DB.Repo.Migrations.AddObanJobsTable method up (line 4) | def up do method down (line 11) | def down do FILE: apps/transport/priv/repo/migrations/20211021094750_move_fields_to_jsonb.exs class DB.Repo.Migrations.MoveFieldsToJsonb (line 1) | defmodule DB.Repo.Migrations.MoveFieldsToJsonb method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211122101004_add_metrics.exs class DB.Repo.Migrations.AddProxyMetrics (line 1) | defmodule DB.Repo.Migrations.AddProxyMetrics method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211130094242_add_resource_history.exs class DB.Repo.Migrations.AddResourceHistory (line 1) | defmodule DB.Repo.Migrations.AddResourceHistory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211209090542_add_breaking_news_table.exs class DB.Repo.Migrations.AddBreakingNewsTable (line 1) | defmodule DB.Repo.Migrations.AddBreakingNewsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211209121042_migrate_gbfs_metrics.exs class DB.Repo.Migrations.MigrateGBFSMetrics (line 1) | defmodule DB.Repo.Migrations.MigrateGBFSMetrics method up (line 5) | def up do method down (line 28) | def down do FILE: apps/transport/priv/repo/migrations/20211210082242_add_resource_unavailability.exs class DB.Repo.Migrations.AddResourceUnavailability (line 1) | defmodule DB.Repo.Migrations.AddResourceUnavailability method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20211214142804_create_conversion_table.exs class DB.Repo.Migrations.CreateConversionTable (line 1) | defmodule DB.Repo.Migrations.CreateConversionTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220104092238_add_resource_history_last_up_to_date_at_field.exs class DB.Repo.Migrations.AddResourceHistoryLastUpToDateAtField (line 1) | defmodule DB.Repo.Migrations.AddResourceHistoryLastUpToDateAtField method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220118101217_allow_netex_conversion.exs class DB.Repo.Migrations.AllowNetexConversion (line 1) | defmodule DB.Repo.Migrations.AllowNetexConversion method up (line 4) | def up do method down (line 9) | def down do FILE: apps/transport/priv/repo/migrations/20220124133742_add_category_locations.exs class DB.Repo.Migrations.AddCategoryLocations (line 1) | defmodule DB.Repo.Migrations.AddCategoryLocations method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20220126101800_add_title_resource_history.exs class DB.Repo.Migrations.AddTitleResourceHistory (line 1) | defmodule DB.Repo.Migrations.AddTitleResourceHistory method up (line 4) | def up do method down (line 20) | def down do FILE: apps/transport/priv/repo/migrations/20220208143147_create_gtfs_stops_table.exs class DB.Repo.Migrations.CreateGtfsStopsTable (line 1) | defmodule DB.Repo.Migrations.CreateGtfsStopsTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220210142527_add_table_gtfs_stop_times.exs class DB.Repo.Migrations.AddTableGtfsStopTimes (line 1) | defmodule DB.Repo.Migrations.AddTableGtfsStopTimes method up (line 4) | def up do method down (line 21) | def down do FILE: apps/transport/priv/repo/migrations/20220214161600_migrate_old_validation_rows.exs class DB.Repo.Migrations.MigrateExistingOnDemandGTFSValidation (line 1) | defmodule DB.Repo.Migrations.MigrateExistingOnDemandGTFSValidation method up (line 4) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20220225104500_drop_table_partner.exs class DB.Repo.Migrations.DropTablePartner (line 1) | defmodule DB.Repo.Migrations.DropTablePartner method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20220301085100_add_timestamps_data_import.exs class DB.Repo.Migrations.AddTimestampsDataImport (line 1) | defmodule DB.Repo.Migrations.AddTimestampsDataImport method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220321151717_remove_resource_deprecated_fields.exs class DB.Repo.Migrations.RemoveResourceDeprecatedFields (line 1) | defmodule DB.Repo.Migrations.RemoveResourceDeprecatedFields method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220322090153_rename_dataset_title_fields.exs class DB.Repo.Migrations.RenameDatasetTitleFields (line 1) | defmodule DB.Repo.Migrations.RenameDatasetTitleFields method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220322135059_update_search_conf_field_name.exs class DB.Repo.Migrations.UpdateSearchConfFieldName (line 1) | defmodule DB.Repo.Migrations.UpdateSearchConfFieldName method up (line 4) | def up do method down (line 65) | def down do FILE: apps/transport/priv/repo/migrations/20220329113451_add_index_history_dataset_id.exs class DB.Repo.Migrations.AddIndexHistoryDatasetId (line 1) | defmodule DB.Repo.Migrations.AddIndexHistoryDatasetId method up (line 6) | def up do method down (line 13) | def down do FILE: apps/transport/priv/repo/migrations/20220406125936_add_geo_data.exs class DB.Repo.Migrations.AddGeoData (line 1) | defmodule DB.Repo.Migrations.AddGeoData method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220412131157_add_resource_filetype.exs class DB.Repo.Migrations.AddResourceFiletype (line 1) | defmodule DB.Repo.Migrations.AddResourceFiletype method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220419124355_rename_category_road_network.exs class DB.Repo.Migrations.RenameCategoryRoadNetwork (line 1) | defmodule DB.Repo.Migrations.RenameCategoryRoadNetwork method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20220429092956_set_up_multi_validation.exs class DB.Repo.Migrations.SetUpMultiValidation (line 1) | defmodule DB.Repo.Migrations.SetUpMultiValidation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220502083641_add_metadata_table.exs class DB.Repo.Migrations.AddMetadataTable (line 1) | defmodule DB.Repo.Migrations.AddMetadataTable method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220502130846_add_resource_type.exs class DB.Repo.Migrations.AddResourceType (line 1) | defmodule DB.Repo.Migrations.AddResourceType method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220505115659_add_resource_display_position.exs class DB.Repo.Migrations.AddResourceDisplayPosition (line 1) | defmodule DB.Repo.Migrations.AddResourceDisplayPosition method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220505121748_create_resource_history_format_index.exs class DB.Repo.Migrations.CreateResourceHistoryFormatIndex (line 1) | defmodule DB.Repo.Migrations.CreateResourceHistoryFormatIndex method up (line 6) | def up do method down (line 10) | def down do FILE: apps/transport/priv/repo/migrations/20220510124001_create_multi_validation_index.exs class DB.Repo.Migrations.CreateMultiValidationIndex (line 1) | defmodule DB.Repo.Migrations.CreateMultiValidationIndex method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220523132328_add_resource_history_resource_id.exs class DB.Repo.Migrations.AddResourceHistoryResourceId (line 1) | defmodule DB.Repo.Migrations.AddResourceHistoryResourceId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220525084346_add_multi_validation_args.exs class DB.Repo.Migrations.AddMultiValidationArgs (line 1) | defmodule DB.Repo.Migrations.AddMultiValidationArgs method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220531123506_modify_resource_history_constraint.exs class DB.Repo.Migrations.ModifyResourceHistoryConstraint (line 1) | defmodule DB.Repo.Migrations.ModifyResourceHistoryConstraint method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220615090656_add_index_resource_history_resource_id.exs class DB.Repo.Migrations.AddIndexResourceHistoryResourceId (line 1) | defmodule DB.Repo.Migrations.AddIndexResourceHistoryResourceId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220615123711_add_max_error_field.exs class DB.Repo.Migrations.AddMaxErrorField (line 1) | defmodule DB.Repo.Migrations.AddMaxErrorField method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220922134600_fix_region_data.exs class DB.Repo.Migrations.FixRegionData (line 1) | defmodule DB.Repo.Migrations.FixRegionData method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220923080044_add_table_departement.exs class DB.Repo.Migrations.AddTableDepartement (line 1) | defmodule DB.Repo.Migrations.AddTableDepartement method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220923080526_add_columns_communes.exs class DB.Repo.Migrations.AddColumnsCommunes (line 1) | defmodule DB.Repo.Migrations.AddColumnsCommunes method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220929073801_fix_geometries.exs class DB.Repo.Migrations.FixGeometries (line 1) | defmodule DB.Repo.Migrations.FixGeometries method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20220930122054_add_metadata_modes_features.exs class DB.Repo.Migrations.AddMetadataModesFeatures (line 1) | defmodule DB.Repo.Migrations.AddMetadataModesFeatures method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221004125601_set_noumea_siren.exs class DB.Repo.Migrations.SetNoumeaSiren (line 1) | defmodule DB.Repo.Migrations.SetNoumeaSiren method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20221004135750_enable_trigger_refresh_places_commune_trigger.exs class DB.Repo.Migrations.EnableTriggerRefreshPlacesCommuneTrigger (line 1) | defmodule DB.Repo.Migrations.EnableTriggerRefreshPlacesCommuneTrigger method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221004151551_add_modes_features_index.exs class DB.Repo.Migrations.AddModesFeaturesIndex (line 1) | defmodule DB.Repo.Migrations.AddModesFeaturesIndex method features_index (line 4) | def features_index, do: "resource_metadata_features_idx" method modes_index (line 5) | def modes_index, do: "resource_metadata_modes_idx" method up (line 7) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20221005125656_update_modes_features_places.exs class DB.Repo.Migrations.UpdateModesFeaturesPlaces (line 1) | defmodule DB.Repo.Migrations.UpdateModesFeaturesPlaces method up (line 4) | def up do method down (line 105) | def down do FILE: apps/transport/priv/repo/migrations/20221010144415_rename_population_cols_aom.exs class DB.Repo.Migrations.RenamePopulationColsAom (line 1) | defmodule DB.Repo.Migrations.RenamePopulationColsAom method up (line 4) | def up do method down (line 68) | def down do FILE: apps/transport/priv/repo/migrations/20221031094523_dataset_add_timestamps.exs class DB.Repo.Migrations.DatasetAddTimestamps (line 1) | defmodule DB.Repo.Migrations.DatasetAddTimestamps method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221110101806_rename_mobility_license.exs class DB.Repo.Migrations.RenameMobilityLicense (line 1) | defmodule DB.Repo.Migrations.RenameMobilityLicense method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20221129131631_dataset_add_archived_at_field.exs class DB.Repo.Migrations.DatasetAddArchivedAtField (line 1) | defmodule DB.Repo.Migrations.DatasetAddArchivedAtField method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221201165336_create_dataset_history.exs class DB.Repo.Migrations.CreateDatasetHistory (line 1) | defmodule DB.Repo.Migrations.CreateDatasetHistory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221206132945_on_delete_nilify.exs class DB.Repo.Migrations.OnDeleteNilify (line 1) | defmodule DB.Repo.Migrations.OnDeleteNilify method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221206135302_data_import_delete.exs class DB.Repo.Migrations.DataImportDelete (line 1) | defmodule DB.Repo.Migrations.DataImportDelete method up (line 12) | def up do FILE: apps/transport/priv/repo/migrations/20221208083708_add_indexes_resource.exs class DB.Repo.Migrations.AddIndexesResource (line 1) | defmodule DB.Repo.Migrations.AddIndexesResource method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20221228090455_create_oban_peers.exs class DB.Repo.Migrations.CreateObanPeers (line 1) | defmodule DB.Repo.Migrations.CreateObanPeers method up (line 5) | def up, do: Oban.Migrations.up(version: 11) method down (line 7) | def down, do: Oban.Migrations.down(version: 11) FILE: apps/transport/priv/repo/migrations/20221228090553_swap_primary_oban_indexes.exs class DB.Repo.Migrations.SwapPrimaryObanIndexes (line 1) | defmodule DB.Repo.Migrations.SwapPrimaryObanIndexes method change (line 7) | def change do FILE: apps/transport/priv/repo/migrations/20221228142229_remove_resource_start_end_date.exs class DB.Repo.Migrations.RemoveResourceStartEndDate (line 1) | defmodule DB.Repo.Migrations.RemoveResourceStartEndDate method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230103165252_validation_v1_shutdown.exs class DB.Repo.Migrations.ValidationV1Shutdown (line 1) | defmodule DB.Repo.Migrations.ValidationV1Shutdown method up (line 4) | def up do method down (line 16) | def down do FILE: apps/transport/priv/repo/migrations/20230110074451_create_data_import_batch.exs class DB.Repo.Migrations.CreateDataImportBatch (line 1) | defmodule DB.Repo.Migrations.CreateDataImportBatch method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230111115335_add_index_dataset_history_slug.exs class DB.Repo.Migrations.AddIndexDatasetHistorySlug (line 1) | defmodule DB.Repo.Migrations.AddIndexDatasetHistorySlug method up (line 6) | def up do method down (line 10) | def down do FILE: apps/transport/priv/repo/migrations/20230112132326_add_notifications.exs class DB.Repo.Migrations.AddNotifications (line 1) | defmodule DB.Repo.Migrations.AddNotifications method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230120093740_dataset_add_unique_datagouv_id.exs class DB.Repo.Migrations.DatasetAddUniqueDatagouvId (line 1) | defmodule DB.Repo.Migrations.DatasetAddUniqueDatagouvId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230124110826_notifications_change_dataset_on_delete_behavior.exs class DB.Repo.Migrations.NotificationsChangeDatasetOnDeleteBehavior (line 1) | defmodule DB.Repo.Migrations.NotificationsChangeDatasetOnDeleteBehavior method up (line 4) | def up do method down (line 12) | def down do FILE: apps/transport/priv/repo/migrations/20230124131704_dataset_tags.exs class DB.Repo.Migrations.DatasetTags (line 1) | defmodule DB.Repo.Migrations.DatasetTags method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230125145703_notifications_add_dataset_datagouv_id.exs class DB.Repo.Migrations.NotificationsAddDatasetDatagouvId (line 1) | defmodule DB.Repo.Migrations.NotificationsAddDatasetDatagouvId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230202090645_add_dataset_organization_type.exs class DB.Repo.Migrations.AddDatasetOrganizationType (line 1) | defmodule DB.Repo.Migrations.AddDatasetOrganizationType method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230206131831_add_contacts.exs class DB.Repo.Migrations.AddContacts (line 1) | defmodule DB.Repo.Migrations.AddContacts method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230220102200_add_notification_subscription.exs class DB.Repo.Migrations.AddNotificationSubscription (line 1) | defmodule DB.Repo.Migrations.AddNotificationSubscription method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230302084455_add_dataset_legal_owner.exs class DB.Repo.Migrations.AddDatasetLegalOwner (line 1) | defmodule DB.Repo.Migrations.AddDatasetLegalOwner method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230308085359_add_indexes_dataset_history_resources.exs class DB.Repo.Migrations.AddIndexesDatasetHistoryResources (line 1) | defmodule DB.Repo.Migrations.AddIndexesDatasetHistoryResources method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230309102424_add_mailing_list_title_contact.exs class DB.Repo.Migrations.AddMailingListTitleContact (line 1) | defmodule DB.Repo.Migrations.AddMailingListTitleContact method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230322080214_dataset_change_types_date_cols.exs class DB.Repo.Migrations.DatasetChangeTypesDateCols (line 1) | defmodule DB.Repo.Migrations.DatasetChangeTypesDateCols method up (line 4) | def up do method down (line 15) | def down do FILE: apps/transport/priv/repo/migrations/20230327135824_correct_dataset_population_update.exs class DB.Repo.Migrations.CorrectDatasetPopulationUpdate (line 1) | defmodule DB.Repo.Migrations.CorrectDatasetPopulationUpdate method up (line 4) | def up do method down (line 90) | def down do FILE: apps/transport/priv/repo/migrations/20230329071947_resource_change_types_datetime_cols.exs class DB.Repo.Migrations.ResourceChangeTypesDateTimeCols (line 1) | defmodule DB.Repo.Migrations.ResourceChangeTypesDateTimeCols method up (line 4) | def up do method down (line 17) | def down do FILE: apps/transport/priv/repo/migrations/20230404074406_add_resource_related.exs class DB.Repo.Migrations.AddResourceRelated (line 1) | defmodule DB.Repo.Migrations.AddResourceRelated method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230412080437_contact_add_secondary_phone_number.exs class DB.Repo.Migrations.ContactAddSecondaryPhoneNumber (line 1) | defmodule DB.Repo.Migrations.ContactAddSecondaryPhoneNumber method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230420134229_notification_subscription_rename_licence_ouverte_reason.exs class DB.Repo.Migrations.NotificationSubscriptionRenameLicenceOuverteReason (line 1) | defmodule DB.Repo.Migrations.NotificationSubscriptionRenameLicenceOuvert... method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230427083218_contact_add_datagouv_user_id_last_login_at.exs class DB.Repo.Migrations.ContactAddDatagouvUserIdAndLastLoginAt (line 1) | defmodule DB.Repo.Migrations.ContactAddDatagouvUserIdAndLastLoginAt method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230524122950_notification_subscription_rename_switching_licences_reason.exs class DB.Repo.Migrations.NotificationSubscriptionRenameSwitchingLicencesReason (line 1) | defmodule DB.Repo.Migrations.NotificationSubscriptionRenameSwitchingLice... method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230525152222_create_table_dataset_score.exs class DB.Repo.Migrations.CreateTableDatasetScore (line 1) | defmodule DB.Repo.Migrations.CreateTableDatasetScore method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230609122110_dataset_add_organization_id.exs class DB.Repo.Migrations.DatasetAddOrganizationId (line 1) | defmodule DB.Repo.Migrations.DatasetAddOrganizationId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230623121709_aom_remove_parent_dataset_id.exs class DB.Repo.Migrations.AomRemoveParentDatasetId (line 1) | defmodule DB.Repo.Migrations.AomRemoveParentDatasetId method up (line 4) | def up do method down (line 103) | def down do FILE: apps/transport/priv/repo/migrations/20230626130232_notification_subscription_add_role.exs class DB.Repo.Migrations.NotificationSubscriptionAddRole (line 1) | defmodule DB.Repo.Migrations.NotificationSubscriptionAddRole method up (line 4) | def up do method down (line 16) | def down do FILE: apps/transport/priv/repo/migrations/20230630074914_add_organization.exs class DB.Repo.Migrations.AddOrganization (line 1) | defmodule DB.Repo.Migrations.AddOrganization method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230719123439_dataset_score_topic_index.exs class DB.Repo.Migrations.DatasetScoreTopicIndex (line 1) | defmodule DB.Repo.Migrations.DatasetScoreTopicIndex method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230719124102_dataset_legal_owner_company_siren_type.exs class DB.Repo.Migrations.DatasetLegalOwnerCompanySirenType (line 1) | defmodule DB.Repo.Migrations.DatasetLegalOwnerCompanySirenType method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20230828142610_aom_trim_departement.exs class DB.Repo.Migrations.AomTrimDepartement (line 1) | defmodule DB.Repo.Migrations.AomTrimDepartement method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20230913130308_metrics_gbfs_target_name.exs class DB.Repo.Migrations.MetricsGBFSTargetName (line 1) | defmodule DB.Repo.Migrations.MetricsGBFSTargetName method up (line 4) | def up do method down (line 9) | def down do FILE: apps/transport/priv/repo/migrations/20230925124412_gbfs_metrics_remove_404_rows.exs class DB.Repo.Migrations.GbfsMetricsRemove404Rows (line 1) | defmodule DB.Repo.Migrations.GbfsMetricsRemove404Rows method up (line 4) | def up do method down (line 15) | def down do FILE: apps/transport/priv/repo/migrations/20231019121309_data_conversion_add_columns.exs class DB.Repo.Migrations.DataConversionAddColumns (line 1) | defmodule DB.Repo.Migrations.DataConversionAddColumns method up (line 4) | def up do method down (line 34) | def down do FILE: apps/transport/priv/repo/migrations/20231110140739_remove_columns_from_aom.exs class DB.Repo.Migrations.RemoveColumnsFromAOM (line 1) | defmodule DB.Repo.Migrations.RemoveColumnsFromAOM method change (line 4) | def change do method execute_up (line 25) | defp execute_up do method execute_down (line 29) | def execute_down do method sql_dataset_update_function (line 33) | def sql_dataset_update_function(aom_population_attribute) do FILE: apps/transport/priv/repo/migrations/20231214145408_dataset_monthly_metrics.exs class DB.Repo.Migrations.DatasetMonthlyMetrics (line 1) | defmodule DB.Repo.Migrations.DatasetMonthlyMetrics method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20231222145809_improve_epci.exs class DB.Repo.Migrations.ImproveEPCI (line 1) | defmodule DB.Repo.Migrations.ImproveEPCI method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20231231135108_add_dataset_search_payload.exs class DB.Repo.Migrations.AddDatasetSearchPayload (line 1) | defmodule DB.Repo.Migrations.AddDatasetSearchPayload method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240102144643_dataset_add_not_null.exs class DB.Repo.Migrations.DatasetAddNotNull (line 1) | defmodule DB.Repo.Migrations.DatasetAddNotNull method up (line 20) | def up do method down (line 26) | def down do FILE: apps/transport/priv/repo/migrations/20240110085755_resource_related_on_delete.exs class DB.Repo.Migrations.ResourceRelatedOnDelete (line 1) | defmodule DB.Repo.Migrations.ResourceRelatedOnDelete method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240117075117_resource_monthly_metrics.exs class DB.Repo.Migrations.ResourceMonthlyMetrics (line 1) | defmodule DB.Repo.Migrations.ResourceMonthlyMetrics method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240118133546_create_processing_reports.exs class Transport.Repo.Migrations.CreateProcessingReports (line 1) | defmodule Transport.Repo.Migrations.CreateProcessingReports method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240123133743_dataset_custom_logos_columns.exs class DB.Repo.Migrations.DatasetCustomLogosColumns (line 1) | defmodule DB.Repo.Migrations.DatasetCustomLogosColumns method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240212101805_dataset_add_custom_logo_changed_at.exs class DB.Repo.Migrations.DatasetAddCustomLogoChangedAt (line 1) | defmodule DB.Repo.Migrations.DatasetAddCustomLogoChangedAt method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240310152509_use_standard_timestamps_precision.exs class DB.Repo.Migrations.UseStandardTimestampsPrecision (line 1) | defmodule DB.Repo.Migrations.UseStandardTimestampsPrecision method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240311141215_create_dataset_followers.exs class DB.Repo.Migrations.CreateDatasetsFollowers (line 1) | defmodule DB.Repo.Migrations.CreateDatasetsFollowers method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240318143637_dataset_add_is_hidden.exs class DB.Repo.Migrations.DatasetAddIsHidden (line 1) | defmodule DB.Repo.Migrations.DatasetAddIsHidden method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240418140451_resource_url_size.exs class DB.Repo.Migrations.ResourceUrlSize (line 1) | defmodule DB.Repo.Migrations.ResourceUrlSize method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240422145836_create_user_feedback.exs class Transport.Repo.Migrations.CreateUserFeedback (line 1) | defmodule Transport.Repo.Migrations.CreateUserFeedback method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240502134737_notification_subscriptions_migrate_platform_producer.exs class DB.Repo.Migrations.NotificationSubscriptionsMigratePlatformProducer (line 1) | defmodule DB.Repo.Migrations.NotificationSubscriptionsMigratePlatformPro... method up (line 4) | def up do method down (line 13) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20240515113652_add_dataset_datagouv_id_to_resource_monthly_metrics.exs class DB.Repo.Migrations.AddDatasetDatagouvIdToResourceMonthlyMetrics (line 1) | defmodule DB.Repo.Migrations.AddDatasetDatagouvIdToResourceMonthlyMetrics method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240515155123_relax_constraint_on_resource_monthly_metrics.exs class DB.Repo.Migrations.RelaxConstraintOnResourceMonthlyMetrics (line 1) | defmodule DB.Repo.Migrations.RelaxConstraintOnResourceMonthlyMetrics method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20240520130507_add_datagouv_id_to_dataset_history_resources.exs class DB.Repo.Migrations.AddDatagouvIdToDatasetHistoryResources (line 1) | defmodule DB.Repo.Migrations.AddDatagouvIdToDatasetHistoryResources method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240604121342_notifications_add_columns.exs class DB.Repo.Migrations.NotificationsAddColumns (line 1) | defmodule DB.Repo.Migrations.NotificationsAddColumns method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240619052714_add_resource_counter_cache.exs class DB.Repo.Migrations.AddResourceCounterCache (line 1) | defmodule DB.Repo.Migrations.AddResourceCounterCache method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240725130522_dataset_organization_type_migrate_value.exs class DB.Repo.Migrations.DatasetOrganizationTypeMigrateValue (line 1) | defmodule DB.Repo.Migrations.DatasetOrganizationTypeMigrateValue method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20240726065227_dataset_organization_id_not_null.exs class DB.Repo.Migrations.DatasetOrganizationIdNotNull (line 1) | defmodule DB.Repo.Migrations.DatasetOrganizationIdNotNull method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20240730130026_notifications_adjust_foreign_keys.exs class DB.Repo.Migrations.NotificationsAdjustForeignKeys (line 1) | defmodule DB.Repo.Migrations.NotificationsAdjustForeignKeys method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20240905121512_dataset_remove_paris2024_tag.exs class DB.Repo.Migrations.DatasetRemoveParis2024Tag (line 1) | defmodule DB.Repo.Migrations.DatasetRemoveParis2024Tag method up (line 4) | def up do method down (line 8) | def down do FILE: apps/transport/priv/repo/migrations/20240926074311_contact_add_creation_source.exs class DB.Repo.Migrations.ContactAddCreationSource (line 1) | defmodule DB.Repo.Migrations.ContactAddCreationSource method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20241120132849_geo_data_import_add_slug.exs class DB.Repo.Migrations.GeoDataImportAddSlug (line 1) | defmodule DB.Repo.Migrations.GeoDataImportAddSlug method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250204084455_reuser_improved_data.exs class DB.Repo.Migrations.ReuserImprovedData (line 1) | defmodule DB.Repo.Migrations.ReuserImprovedData method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250225130151_resource_history_add_reuser_improved_data.exs class DB.Repo.Migrations.ResourceHistoryAddReuserImprovedData (line 1) | defmodule DB.Repo.Migrations.ResourceHistoryAddReuserImprovedData method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250305130125_resource_history_nullable_datagouv_id.exs class DB.Repo.Migrations.ResourceHistoryNullableDatagouvId (line 1) | defmodule DB.Repo.Migrations.ResourceHistoryNullableDatagouvId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250305142322_create_reuse.exs class DB.Repo.Migrations.CreateReuse (line 1) | defmodule DB.Repo.Migrations.CreateReuse method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250305143006_create_reuse_dataset.exs class DB.Repo.Migrations.CreateReuseDataset (line 1) | defmodule DB.Repo.Migrations.CreateReuseDataset method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250331133652_token.exs class DB.Repo.Migrations.Token (line 1) | defmodule DB.Repo.Migrations.Token method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250527092321_create_api_request.exs class DB.Repo.Migrations.CreateApiRequest (line 1) | defmodule DB.Repo.Migrations.CreateApiRequest method change (line 5) | def change do method postgresql_extensions (line 28) | def postgresql_extensions do FILE: apps/transport/priv/repo/migrations/20250530171428_token_add_default_for_contact_id.exs class DB.Repo.Migrations.TokenAddDefaultForContactId (line 1) | defmodule DB.Repo.Migrations.TokenAddDefaultForContactId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250603104959_default_token.exs class DB.Repo.Migrations.DefaultToken (line 1) | defmodule DB.Repo.Migrations.DefaultToken method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250604082439_resource_download.exs class DB.Repo.Migrations.ResourceDownload (line 1) | defmodule DB.Repo.Migrations.ResourceDownload method change (line 5) | def change do method postgresql_extensions (line 27) | def postgresql_extensions do FILE: apps/transport/priv/repo/migrations/20250610141027_migrate_dataset_types.exs class DB.Repo.Migrations.MigrateDatasetTypes (line 1) | defmodule DB.Repo.Migrations.MigrateDatasetTypes method up (line 4) | def up do method down (line 16) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20250617100226_create_administrative_division.exs class DB.Repo.Migrations.CreateAdministrativeDivision (line 1) | defmodule DB.Repo.Migrations.CreateAdministrativeDivision method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250618122521_feature_usage.exs class DB.Repo.Migrations.FeatureUsage (line 1) | defmodule DB.Repo.Migrations.FeatureUsage method change (line 5) | def change do method postgresql_extensions (line 28) | def postgresql_extensions do FILE: apps/transport/priv/repo/migrations/20250620141849_create_dataset_declarative_spatial_area.exs class DB.Repo.Migrations.CreateDatasetDeclarativeSpatialArea (line 1) | defmodule DB.Repo.Migrations.CreateDatasetDeclarativeSpatialArea method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250816134003_upgrade_oban_jobs_to_v13.exs class DB.Repo.Migrations.UpgradeObanJobsToV13 (line 1) | defmodule DB.Repo.Migrations.UpgradeObanJobsToV13 method up (line 4) | def up, do: Oban.Migrations.up(version: 13) method down (line 6) | def down, do: Oban.Migrations.down(version: 13) FILE: apps/transport/priv/repo/migrations/20250818131430_create_proxy_request.exs class DB.Repo.Migrations.CreateProxyRequest (line 1) | defmodule DB.Repo.Migrations.CreateProxyRequest method change (line 5) | def change do method postgresql_extensions (line 27) | def postgresql_extensions do FILE: apps/transport/priv/repo/migrations/20250905085103_create_irve_tables.exs class DB.Repo.Migrations.CreateIrveTables (line 1) | defmodule DB.Repo.Migrations.CreateIrveTables method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250905125828_places_add_departement.exs class DB.Repo.Migrations.PlacesAddDepartement (line 1) | defmodule DB.Repo.Migrations.PlacesAddDepartement method up (line 4) | def up do method down (line 123) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20250915101514_places_add_epci.exs class DB.Repo.Migrations.PlacesAddEPCI (line 1) | defmodule DB.Repo.Migrations.PlacesAddEPCI method up (line 4) | def up do method down (line 73) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20250917125049_dataset_geographic_view_administrative_division.exs class DB.Repo.Migrations.DatasetGeographicViewAdministrativeDivision (line 1) | defmodule DB.Repo.Migrations.DatasetGeographicViewAdministrativeDivision method up (line 4) | def up do method down (line 59) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20250922081424_administrative_division_population.exs class DB.Repo.Migrations.AdministrativeDivisionPopulation (line 1) | defmodule DB.Repo.Migrations.AdministrativeDivisionPopulation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20250922083326_dataset_search_update_remove_population.exs class DB.Repo.Migrations.DatasetSearchUpdateRemovePopulation (line 1) | defmodule DB.Repo.Migrations.DatasetSearchUpdateRemovePopulation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251006140759_delete_cascade_resource_downloads.exs class DB.Repo.Migrations.DeleteCascadeResourceDownloads (line 1) | defmodule DB.Repo.Migrations.DeleteCascadeResourceDownloads method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251009114246_add_result_digest_to_multi_validation.exs class DB.Repo.Migrations.AddResultDigestToMultiValidation (line 1) | defmodule DB.Repo.Migrations.AddResultDigestToMultiValidation method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251027091600_commune_aom_siren.exs class DB.Repo.Migrations.CommuneAomSiren (line 1) | defmodule DB.Repo.Migrations.CommuneAomSiren method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251117085613_delete_dataset_communes.exs class DB.Repo.Migrations.DeleteDatasetCommunes (line 1) | defmodule DB.Repo.Migrations.DeleteDatasetCommunes method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251117090342_dataset_delete_aom_id_region_id.exs class DB.Repo.Migrations.DatasetDeleteAomIdRegionId (line 1) | defmodule DB.Repo.Migrations.DatasetDeleteAomIdRegionId method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251120121226_create_offer.exs class DB.Repo.Migrations.CreateOffer (line 1) | defmodule DB.Repo.Migrations.CreateOffer method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251120125829_create_dataset_offer.exs class DB.Repo.Migrations.CreateDatasetOffer (line 1) | defmodule DB.Repo.Migrations.CreateDatasetOffer method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251121164427_region_iso3166.exs class DB.Repo.Migrations.RegionIso3166 (line 1) | defmodule DB.Repo.Migrations.RegionIso3166 method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251202120339_region_remove_is_completed.exs class DB.Repo.Migrations.RegionRemoveIsCompleted (line 1) | defmodule DB.Repo.Migrations.RegionRemoveIsCompleted method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251203161550_add_indexes_resource_history.exs class DB.Repo.Migrations.AddIndexesResourceHistory (line 1) | defmodule DB.Repo.Migrations.AddIndexesResourceHistory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251204151437_places_add_offers.exs class DB.Repo.Migrations.PlacesAddOffers (line 1) | defmodule DB.Repo.Migrations.PlacesAddOffers method up (line 4) | def up do method down (line 96) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20251204172125_offer_index.exs class DB.Repo.Migrations.OfferIndex (line 1) | defmodule DB.Repo.Migrations.OfferIndex method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251204202714_resource_format_override.exs class DB.Repo.Migrations.ResourceFormatOverride (line 1) | defmodule DB.Repo.Migrations.ResourceFormatOverride method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251208124339_places_rename_autocomplete.exs class DB.Repo.Migrations.PlacesRenameAutocomplete (line 1) | defmodule DB.Repo.Migrations.PlacesRenameAutocomplete method up (line 4) | def up do method down (line 11) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20251209110327_departement_iso3166.exs class DB.Repo.Migrations.DepartementIso3166 (line 1) | defmodule DB.Repo.Migrations.DepartementIso3166 method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251209123938_add_table_size_history.exs class DB.Repo.Migrations.AddTableSizeHistory (line 1) | defmodule DB.Repo.Migrations.AddTableSizeHistory method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251209144903_add_gtfs_agency.exs class DB.Repo.Migrations.AddGtfsAgency (line 1) | defmodule DB.Repo.Migrations.AddGtfsAgency method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251209172445_add_multi_validation_binary_result.exs class DB.Repo.Migrations.AddMultiValidationBinaryResult (line 1) | defmodule DB.Repo.Migrations.AddMultiValidationBinaryResult method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20251215081025_autocomplete_add_format.exs class DB.Repo.Migrations.AutocompleteAddFormat (line 1) | defmodule DB.Repo.Migrations.AutocompleteAddFormat method up (line 4) | def up do method down (line 11) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20251218133947_autocomplete_add_dataset.exs class DB.Repo.Migrations.AutocompleteAddDataset (line 1) | defmodule DB.Repo.Migrations.AutocompleteAddDataset method up (line 4) | def up do method down (line 11) | def down, do: IO.puts("No going back") FILE: apps/transport/priv/repo/migrations/20251220162908_contact_add_locale.exs class DB.Repo.Migrations.ContactAddLocale (line 1) | defmodule DB.Repo.Migrations.ContactAddLocale method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260117113753_create_hidden_reuser_alerts.exs class DB.Repo.Migrations.CreateHiddenReuserAlerts (line 1) | defmodule DB.Repo.Migrations.CreateHiddenReuserAlerts method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260122180704_create_dataset_subtype.exs class DB.Repo.Migrations.CreateDatasetSubtype (line 1) | defmodule DB.Repo.Migrations.CreateDatasetSubtype method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260126155921_allow_netex_to_geojson_conversion.exs class DB.Repo.Migrations.AllowNeTExToGeoJSONConversion (line 1) | defmodule DB.Repo.Migrations.AllowNeTExToGeoJSONConversion method up (line 4) | def up do method down (line 9) | def down do FILE: apps/transport/priv/repo/migrations/20260205144049_rename_irve_valid_file_columns.exs class DB.Repo.Migrations.RenameIrveValidFileColumns (line 1) | defmodule DB.Repo.Migrations.RenameIrveValidFileColumns method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260209120000_add_missing_fields_to_irve_valid_file.exs class DB.Repo.Migrations.AddMissingFieldsToIrveValidFile (line 1) | defmodule DB.Repo.Migrations.AddMissingFieldsToIrveValidFile method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260311000000_create_company.exs class DB.Repo.Migrations.CreateCompany (line 1) | defmodule DB.Repo.Migrations.CreateCompany method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/20260317000001_resource_related_unique_index.exs class DB.Repo.Migrations.ResourceRelatedUniqueIndexSrcDstReason (line 1) | defmodule DB.Repo.Migrations.ResourceRelatedUniqueIndexSrcDstReason method change (line 4) | def change do FILE: apps/transport/priv/repo/migrations/sql/autocomplete_add_dataset.sql function refresh_autocomplete (line 86) | CREATE OR REPLACE FUNCTION refresh_autocomplete() FILE: apps/transport/priv/repo/migrations/sql/autocomplete_add_format.sql function refresh_autocomplete (line 77) | CREATE OR REPLACE FUNCTION refresh_autocomplete() FILE: apps/transport/test/build_test.exs class TransportWeb.BuildTest (line 1) | defmodule TransportWeb.BuildTest method tool_versions (line 5) | def tool_versions do method asdf_elixir_version (line 9) | def asdf_elixir_version do method asdf_erlang_version (line 14) | def asdf_erlang_version(return_full_version \\ false) do method asdf_nodejs_release (line 24) | def asdf_nodejs_release do method js_out_of_date_message (line 88) | def js_out_of_date_message(dep) do FILE: apps/transport/test/datagouvfr/client/api_test.exs class Datagouvfr.Client.APITest (line 1) | defmodule Datagouvfr.Client.APITest method assert_stream_return_pages (line 126) | defp assert_stream_return_pages(resource_to_stream, expected_pages_dat... FILE: apps/transport/test/datagouvfr/client/community_resources_test.exs class Datagouvfr.Client.CommunityResources.APITest (line 1) | defmodule Datagouvfr.Client.CommunityResources.APITest method assert_response_is_valid_and_contains_data (line 63) | defp assert_response_is_valid_and_contains_data({:ok, obtained_data}, ... method assert_is_an_error_response (line 66) | defp assert_is_an_error_response({:error, obtained_data}), method build_expected_community_resource_base_url (line 69) | defp build_expected_community_resource_base_url(community_resource_id), FILE: apps/transport/test/datagouvfr/client/datasets_test.exs class Datagouvfr.Client.DatasetsTest (line 1) | defmodule Datagouvfr.Client.DatasetsTest FILE: apps/transport/test/datagouvfr/client/discussions_test.exs class Datagouvfr.Client.DiscussionTest (line 1) | defmodule Datagouvfr.Client.DiscussionTest FILE: apps/transport/test/datagouvfr/client/resources_test.exs class Datagouvfr.Client.ResourcesTest (line 1) | defmodule Datagouvfr.Client.ResourcesTest FILE: apps/transport/test/datagouvfr/client/reuses_test.exs class Datagouvfr.Client.ReusesTest (line 1) | defmodule Datagouvfr.Client.ReusesTest FILE: apps/transport/test/db/administrative_division_test.exs class DB.AdministrativeDivisionTest (line 1) | defmodule DB.AdministrativeDivisionTest FILE: apps/transport/test/db/contact_test.exs class DB.ContactTest (line 1) | defmodule DB.ContactTest method list_inactive_contact_ids (line 303) | defp list_inactive_contact_ids(datetime) do method sample_contact_args (line 308) | defp sample_contact_args do FILE: apps/transport/test/db/data_conversion_test.exs class DB.DataConversionTest (line 1) | defmodule DB.DataConversionTest FILE: apps/transport/test/db/dataset_follower_test.exs class DB.DatasetFollowerTest (line 1) | defmodule DB.DatasetFollowerTest method changeset (line 85) | defp changeset(args), do: DatasetFollower.changeset(%DatasetFollower{}... FILE: apps/transport/test/db/dataset_history_test.exs class DB.DatasetHistoryTest (line 1) | defmodule DB.DatasetHistoryTest FILE: apps/transport/test/db/dataset_monthly_metric_test.exs class DB.DatasetMonthlyMetricTest (line 1) | defmodule DB.DatasetMonthlyMetricTest FILE: apps/transport/test/db/dataset_score_test.exs class DB.DatasetScoreTest (line 1) | defmodule DB.DatasetScoreTest FILE: apps/transport/test/db/dataset_test.exs class DB.DatasetDBTest (line 1) | defmodule DB.DatasetDBTest FILE: apps/transport/test/db/geom_test.exs class DB.GeomTest (line 1) | defmodule DB.GeomTest FILE: apps/transport/test/db/irve_valid_pdc_test.exs class DB.IRVEValidPDCTest (line 1) | defmodule DB.IRVEValidPDCTest FILE: apps/transport/test/db/metrics_test.exs class DB.MetricsTest (line 1) | defmodule DB.MetricsTest FILE: apps/transport/test/db/multi_validation_test.exs class DB.MultiValidationTest (line 1) | defmodule DB.MultiValidationTest FILE: apps/transport/test/db/notification_subscription_test.exs class DB.NotificationSubscriptionTest (line 1) | defmodule DB.NotificationSubscriptionTest FILE: apps/transport/test/db/notification_test.exs class DB.NotificationTest (line 1) | defmodule DB.NotificationTest FILE: apps/transport/test/db/resource_history_test.exs class DB.ResourceHistoryTest (line 1) | defmodule DB.ResourceHistoryTest FILE: apps/transport/test/db/resource_metadata_test.exs class DB.ResourceMetadataTest (line 1) | defmodule DB.ResourceMetadataTest FILE: apps/transport/test/db/resource_monthly_metric_test.exs class DB.ResourceMonthlyMetricTest (line 1) | defmodule DB.ResourceMonthlyMetricTest FILE: apps/transport/test/db/resource_related_test.exs class DB.ResourceRelatedTest (line 1) | defmodule DB.ResourceRelatedTest FILE: apps/transport/test/db/resource_test.exs class DB.ResourceTest (line 1) | defmodule DB.ResourceTest method http_validation_response (line 16) | def http_validation_response do method insert_resource_history (line 63) | defp insert_resource_history(resource_id, uuid, datetime, time_delta_s... method insert_geojson_data_conversion (line 71) | defp insert_geojson_data_conversion(uuid, permanent_url, filesize, con... FILE: apps/transport/test/db/resource_unavailability_test.exs class DB.ResourceUnavailabilityTest (line 1) | defmodule DB.ResourceUnavailabilityTest method add_hours (line 200) | defp add_hours(datetime, hours), do: DateTime.add(datetime, hours * 60... FILE: apps/transport/test/db/reuse_test.exs class DB.ReuseTest (line 1) | defmodule DB.ReuseTest FILE: apps/transport/test/db/token_test.exs class DB.TokenTest (line 1) | defmodule DB.TokenTest FILE: apps/transport/test/db/user_feedback_test.exs class DB.UserFeedbackTest (line 1) | defmodule DB.UserFeedbackTest method sample_feedback_args (line 48) | defp sample_feedback_args do FILE: apps/transport/test/documentation_links_test.exs class Transport.DocumentationLinksTest (line 1) | defmodule Transport.DocumentationLinksTest method documentation_urls (line 32) | defp documentation_urls do FILE: apps/transport/test/ecto_interval_test.exs class EctoIntervalTest (line 2) | defmodule EctoIntervalTest FILE: apps/transport/test/enroute/chouette_valid_rulesets_client_test.exs class Transport.EnRoute.ChouetteValidRulesetsClientTest (line 1) | defmodule Transport.EnRoute.ChouetteValidRulesetsClientTest method expect_commons (line 141) | defp expect_commons(request) do class Transport.EnRoute.ChouetteValidRulesetsClient.SlugsTest (line 147) | defmodule Transport.EnRoute.ChouetteValidRulesetsClient.SlugsTest FILE: apps/transport/test/gtfs/utils_test.exs class Transport.GTFS.UtilsTest (line 1) | defmodule Transport.GTFS.UtilsTest FILE: apps/transport/test/netex/archive_parser_test.exs class Transport.NeTEx.ArchiveParserTest (line 1) | defmodule Transport.NeTEx.ArchiveParserTest method some_netex_content (line 7) | def some_netex_content do method extract (line 397) | defp extract(extractor, xml) do method create_tmp_netex (line 409) | defp create_tmp_netex(files) do FILE: apps/transport/test/netex/chouette_valid_ruleset_generator_test.exs class Transport.NeTEx.ChouetteValidRulesetGeneratorTest (line 1) | defmodule Transport.NeTEx.ChouetteValidRulesetGeneratorTest FILE: apps/transport/test/netex/stop_places_streaming_parser_test.exs class Transport.NeTEx.StopPlacesStreamingParserTest (line 1) | defmodule Transport.NeTEx.StopPlacesStreamingParserTest method get_stop_places (line 6) | def get_stop_places(xml) do FILE: apps/transport/test/netex/to_geojson/coordinates_test.exs class Transport.NeTEx.ToGeoJSON.CoordinatesTest (line 1) | defmodule Transport.NeTEx.ToGeoJSON.CoordinatesTest FILE: apps/transport/test/netex/to_geojson/geojson_builder_test.exs class Transport.NeTEx.ToGeoJSON.GeoJSONBuilderTest (line 1) | defmodule Transport.NeTEx.ToGeoJSON.GeoJSONBuilderTest FILE: apps/transport/test/netex/to_geojson/parsers/quay_parser_test.exs class Transport.NeTEx.ToGeoJSON.QuayParserTest (line 1) | defmodule Transport.NeTEx.ToGeoJSON.QuayParserTest FILE: apps/transport/test/netex/to_geojson/parsers/service_link_parser_test.exs class Transport.NeTEx.ToGeoJSON.ServiceLinkParserTest (line 1) | defmodule Transport.NeTEx.ToGeoJSON.ServiceLinkParserTest FILE: apps/transport/test/netex/to_geojson/to_geojson_test.exs class Transport.NeTEx.ToGeoJSONTest (line 1) | defmodule Transport.NeTEx.ToGeoJSONTest FILE: apps/transport/test/no_css_inline_style_test.exs class NoCSSInlineStyleTest (line 1) | defmodule NoCSSInlineStyleTest method ignore_filepath? (line 20) | def ignore_filepath?(filepath) do method potential_css_inline? (line 27) | def potential_css_inline?(file) do FILE: apps/transport/test/registry/gtfs_test.exs class Transport.Registry.GTFSTest (line 1) | defmodule Transport.Registry.GTFSTest FILE: apps/transport/test/registry/model_test.exs class Transport.Registry.ModelTest (line 1) | defmodule Transport.Registry.ModelTest FILE: apps/transport/test/registry/result_test.exs class Transport.Registry.ResultTest (line 1) | defmodule Transport.Registry.ResultTest method cat_results (line 19) | defp cat_results(enumerable) do method map_result (line 23) | defp map_result(enumerable, mapper) do method even_is_forbidden (line 28) | defp even_is_forbidden(_), do: {:error, "Even is forbidden"} FILE: apps/transport/test/safe_svg_test.exs class SafeSVGTest (line 1) | defmodule SafeSVGTest method potential_issue_detected? (line 25) | def potential_issue_detected?(file) do FILE: apps/transport/test/support/channel_case.ex class TransportWeb.ChannelCase (line 1) | defmodule TransportWeb.ChannelCase FILE: apps/transport/test/support/conn_case.ex class TransportWeb.ConnCase (line 1) | defmodule TransportWeb.ConnCase method setup_admin_in_session (line 43) | def setup_admin_in_session(%Plug.Conn{} = conn, contact \\ nil) do method proxy_conn (line 52) | def proxy_conn do FILE: apps/transport/test/support/data_gouv_api_fixtures.ex class Datagouvfr.ApiFixtures (line 1) | defmodule Datagouvfr.ApiFixtures method given_request_return_only_one_page (line 17) | def given_request_return_only_one_page(expected_url, expected_data), method given_request_return_response_with_next_page (line 25) | def given_request_return_response_with_next_page(expected_url, expecte... method given_request_return_response_with_next_page (line 31) | def given_request_return_response_with_next_page(expected_url, expecte... method given_request_return_an_error (line 44) | def given_request_return_an_error(expected_url, error \\ "error") do method given_request_return_response_without_next_page (line 54) | def given_request_return_response_without_next_page(expected_url, expe... method mock_httpoison_request (line 60) | def mock_httpoison_request(expected_url, expected_response, expected_o... method build_mocked_response (line 77) | defp build_mocked_response(:ok, expected_data, expected_status_code, e... method build_mocked_response (line 90) | defp build_mocked_response(:error, expected_status_code, expected_data), FILE: apps/transport/test/support/database_case.ex class TransportWeb.DatabaseCase (line 1) | defmodule TransportWeb.DatabaseCase FILE: apps/transport/test/support/enroute_chouette_valid_client_helpers.ex class Transport.Test.EnRouteChouetteValidClientHelpers (line 1) | defmodule Transport.Test.EnRouteChouetteValidClientHelpers method expect_create_validation (line 7) | def expect_create_validation(ruleset) do method expect_pending_validation (line 15) | def expect_pending_validation(validation_id) do method expect_successful_validation (line 21) | def expect_successful_validation(validation_id, elapsed) do method expect_failed_validation (line 29) | def expect_failed_validation(validation_id, elapsed) do method expect_get_messages (line 35) | def expect_get_messages(validation_id, result) do method with_running_validation (line 43) | def with_running_validation, do: Ecto.UUID.generate() FILE: apps/transport/test/support/external_case.ex class TransportWeb.ExternalCase (line 1) | defmodule TransportWeb.ExternalCase FILE: apps/transport/test/support/factory.ex class DB.Factory (line 1) | defmodule DB.Factory method departement_factory (line 11) | def departement_factory do method region_factory (line 32) | def region_factory do method aom_factory (line 38) | def aom_factory do method dataset_factory (line 48) | def dataset_factory do method dataset_monthly_metric_factory (line 70) | def dataset_monthly_metric_factory do method dataset_follower_factory (line 74) | def dataset_follower_factory do method resource_monthly_metric_factory (line 78) | def resource_monthly_metric_factory do method resource_factory (line 82) | def resource_factory do method resource_history_factory (line 96) | def resource_history_factory do method data_conversion_factory (line 103) | def data_conversion_factory do method resource_unavailability_factory (line 111) | def resource_unavailability_factory do method metrics_factory (line 115) | def metrics_factory do method commune_factory (line 119) | def commune_factory do method epci_factory (line 126) | def epci_factory do method data_import_factory (line 130) | def data_import_factory do method gtfs_stop_times_factory (line 134) | def gtfs_stop_times_factory do method gtfs_trips_factory (line 138) | def gtfs_trips_factory do method gtfs_calendar_factory (line 142) | def gtfs_calendar_factory do method gtfs_calendar_dates_factory (line 146) | def gtfs_calendar_dates_factory do method geo_data_import_factory (line 150) | def geo_data_import_factory do method geo_data_factory (line 154) | def geo_data_factory do method multi_validation_factory (line 158) | def multi_validation_factory do method resource_metadata_factory (line 162) | def resource_metadata_factory do method dataset_history_factory (line 166) | def dataset_history_factory do method dataset_history_resources_factory (line 170) | def dataset_history_resources_factory do method notification_factory (line 174) | def notification_factory do method gtfs_stops_factory (line 178) | def gtfs_stops_factory do method dataset_score_factory (line 182) | def dataset_score_factory do method datagouv_api_get_factory (line 188) | def datagouv_api_get_factory do method administrative_division_factory (line 194) | def administrative_division_factory do method insert_resource_and_friends (line 241) | def insert_resource_and_friends(end_date, opts \\ []) do method insert_up_to_date_resource_and_friends (line 300) | def insert_up_to_date_resource_and_friends(opts \\ []) do method insert_outdated_resource_and_friends (line 304) | def insert_outdated_resource_and_friends(opts \\ []) do method insert_notification (line 308) | def insert_notification(%{dataset: %DB.Dataset{id: dataset_id, datagou... method insert_notification (line 315) | def insert_notification(args) do method notification_subscription_factory (line 324) | def notification_subscription_factory do method hidden_reuser_alert_factory (line 328) | def hidden_reuser_alert_factory do method resource_related_factory (line 332) | def resource_related_factory do method default_token_factory (line 336) | def default_token_factory do method reuser_improved_data_factory (line 340) | def reuser_improved_data_factory do method organization_factory (line 352) | def organization_factory do method reuse_factory (line 363) | def reuse_factory do method offer_factory (line 390) | def offer_factory do method dataset_subtype_factory (line 405) | def dataset_subtype_factory do method company_factory (line 409) | def company_factory do method insert_token (line 416) | def insert_token(%{} = args \\ %{}) do method insert_contact (line 436) | def insert_contact(%{} = args \\ %{}) do method insert_irve_dataset (line 450) | def insert_irve_dataset do method insert_bnlc_dataset (line 459) | def insert_bnlc_dataset do method insert_parcs_relais_dataset (line 467) | def insert_parcs_relais_dataset do method insert_zfe_dataset (line 476) | def insert_zfe_dataset do method insert_imported_irve_geo_data (line 486) | def insert_imported_irve_geo_data(dataset_id) do method generate_dataset_payload (line 513) | def generate_dataset_payload(datagouv_id, resources \\ nil) do method datagouv_dataset_response (line 517) | def datagouv_dataset_response(%{} = attributes \\ %{}) do method generate_resources_payload (line 541) | def generate_resources_payload(opts \\ []) do method generate_resource_payload (line 545) | def generate_resource_payload(opts \\ []) do class IRVE (line 558) | defmodule IRVE method generate_row (line 569) | def generate_row(overrides \\ %{}) do method to_csv_body (line 615) | def to_csv_body(items), do: items |> CSV.encode(headers: true) |> Enum... method build_datagouv_initial_pagination_payload (line 617) | def build_datagouv_initial_pagination_payload(page_size: page_size) do method build_datagouv_page_payload (line 634) | def build_datagouv_page_payload do FILE: apps/transport/test/support/file_stream_utils.ex class Transport.Test.FileStreamUtils (line 1) | defmodule Transport.Test.FileStreamUtils method setup_get_file_stream_mox (line 8) | def setup_get_file_stream_mox(zip_filename) do FILE: apps/transport/test/support/live_case.ex class TransportWeb.LiveCase (line 1) | defmodule TransportWeb.LiveCase FILE: apps/transport/test/support/live_view_test_helpers.ex class TransportWeb.LiveViewTestHelpers (line 1) | defmodule TransportWeb.LiveViewTestHelpers method assert_patched_any_params_order (line 12) | def assert_patched_any_params_order(view, expected_url) do FILE: apps/transport/test/support/netex_validation_report.ex class NeTExValidationReportHelpers (line 1) | defmodule NeTExValidationReportHelpers method csv_response (line 8) | def csv_response(conn, status) do method parse_csv (line 15) | def parse_csv(body) do method parquet_response (line 21) | def parquet_response(conn, status) do method parse_parquet (line 28) | def parse_parquet(body) do FILE: apps/transport/test/support/platform.ex class Transport.Platform (line 1) | defmodule Transport.Platform method apple_silicon? (line 7) | def apple_silicon? do FILE: apps/transport/test/support/siri_queries.ex class SIRIQueries (line 1) | defmodule SIRIQueries method siri_query_from_template (line 19) | def siri_query_from_template(timestamp, requestor_ref, message_identif... method siri_query_from_builder (line 43) | def siri_query_from_builder(timestamp, requestor_ref, message_id, stop... method filter_newlines_from_model (line 66) | def filter_newlines_from_model({element, tags, children}) do FILE: apps/transport/test/support/tmp_file.ex class Transport.TmpFile (line 1) | defmodule Transport.TmpFile method with_tmp_file (line 10) | def with_tmp_file(content, cb) do FILE: apps/transport/test/support/zip_creator.ex class ZipCreator (line 1) | defmodule ZipCreator method create! (line 7) | def create!(zip_filename, file_data) do method with_tmp_zip (line 16) | def with_tmp_zip(entries, cb) do FILE: apps/transport/test/swoosh_assert_no_email_sent_test.exs class SwooshAssertNoEmailSent (line 1) | defmodule SwooshAssertNoEmailSent method potential_issue_detected? (line 17) | def potential_issue_detected?(file) do FILE: apps/transport/test/transport/S3/aggregates_uploader_test.exs class Transport.S3.AggregatesUploaderTest (line 1) | defmodule Transport.S3.AggregatesUploaderTest FILE: apps/transport/test/transport/application_test.exs class Transport.ApplicationTest (line 1) | defmodule Transport.ApplicationTest FILE: apps/transport/test/transport/availability_checker_test.exs class Transport.AvailabilityCheckerTest (line 1) | defmodule Transport.AvailabilityCheckerTest method mock_head_with_status (line 96) | defp mock_head_with_status(status_code) do method test_fallback_to_stream (line 102) | defp test_fallback_to_stream(status_code) do FILE: apps/transport/test/transport/cache_cachex_test.exs class Transport.Cache.Cachex.Test (line 1) | defmodule Transport.Cache.Cachex.Test method build_unique_cache_key (line 10) | def build_unique_cache_key, do: Ecto.UUID.generate() FILE: apps/transport/test/transport/cached_files_test.exs class Transport.CachedFilesTest (line 1) | defmodule Transport.CachedFilesTest method distinct_operators? (line 36) | def distinct_operators?(x, y) do FILE: apps/transport/test/transport/comments_checker_test.exs class Transport.CommentsCheckerTest (line 1) | defmodule Transport.CommentsCheckerTest method assert_dataset_ts (line 16) | def assert_dataset_ts(id, timestamp) do FILE: apps/transport/test/transport/community_resource_cleaner_test.exs class Transport.CommunityResourcesCleanerTest (line 1) | defmodule Transport.CommunityResourcesCleanerTest method insert_dataset_associated_with_ressources (line 16) | defp insert_dataset_associated_with_ressources(resources) do method insert_dataset_associated_with_ressources (line 20) | defp insert_dataset_associated_with_ressources(resources, datagouv_id) do FILE: apps/transport/test/transport/companies_test.exs class Transport.CompaniesTest (line 1) | defmodule Transport.CompaniesTest method setup_response_by_siren (line 65) | defp setup_response_by_siren(siren, response) do FILE: apps/transport/test/transport/consolidated_dataset_test.exs class Transport.ConsolidatedDatasetTest (line 1) | defmodule Transport.ConsolidatedDatasetTest FILE: apps/transport/test/transport/custom_search_message_test.exs class Transport.CustomSearchMessageTest (line 1) | defmodule Transport.CustomSearchMessageTest method space_shuttle (line 5) | defp space_shuttle do method teleportation (line 15) | defp teleportation do method jetski (line 25) | defp jetski do FILE: apps/transport/test/transport/data_checker_test.exs class Transport.DataCheckerTest (line 1) | defmodule Transport.DataCheckerTest method setup_datagouv_response (line 177) | defp setup_datagouv_response(%DB.Dataset{datagouv_id: datagouv_id}, st... FILE: apps/transport/test/transport/data_frame/validation_primitives_test.exs class Transport.DataFrame.Validation.PrimitivesTest (line 1) | defmodule Transport.DataFrame.Validation.PrimitivesTest method build_series (line 6) | def build_series(values) do FILE: apps/transport/test/transport/dataset_checks_test.exs class Transport.DatasetChecksTest (line 1) | defmodule Transport.DatasetChecksTest FILE: apps/transport/test/transport/dataset_index_test.exs class Transport.DatasetIndexTest (line 1) | defmodule Transport.DatasetIndexTest FILE: apps/transport/test/transport/expiration_test.exs class Transport.ExpirationTest (line 1) | defmodule Transport.ExpirationTest FILE: apps/transport/test/transport/file_downloads_test.exs class Transport.FileDownloadsTest (line 1) | defmodule Transport.FileDownloadsTest FILE: apps/transport/test/transport/gbfs_metadata_test.exs class Transport.GBFSMetadataTest (line 1) | defmodule Transport.GBFSMetadataTest method fixture_content (line 878) | defp fixture_content(filename) do method setup_validation_result (line 882) | defp setup_validation_result(summary \\ nil) do method setup_feeds (line 902) | defp setup_feeds(feeds), do: Enum.map(feeds, &setup_feed(&1)) method setup_feed (line 904) | defp setup_feed(:gbfs), do: setup_gbfs_response() method setup_feed (line 905) | defp setup_feed(:gbfs_with_versions), do: setup_gbfs_with_versions_res... method setup_feed (line 906) | defp setup_feed(:gbfs_with_server_error), do: setup_gbfs_with_server_e... method setup_feed (line 907) | defp setup_feed(:gbfs_with_invalid_gbfs_json), do: setup_invalid_gbfs_... method setup_feed (line 908) | defp setup_feed(:gbfs_versions), do: setup_gbfs_versions_response() method setup_feed (line 909) | defp setup_feed(:free_bike_status), do: setup_free_bike_status_response() method setup_feed (line 910) | defp setup_feed(:system_information), do: setup_system_information_res... method setup_feed (line 911) | defp setup_feed(:station_information), do: setup_station_information_r... method setup_feed (line 912) | defp setup_feed(:vehicle_types), do: setup_vehicle_types_response() method setup_feed (line 913) | defp setup_feed(:station_status), do: setup_station_status_response() method setup_response (line 915) | defp setup_response(expected_url, body) do method setup_gbfs_with_server_error_response (line 922) | defp setup_gbfs_with_server_error_response do method setup_gbfs_response (line 927) | defp setup_gbfs_response do method setup_invalid_gbfs_response (line 935) | defp setup_invalid_gbfs_response do method setup_gbfs_with_versions_response (line 943) | defp setup_gbfs_with_versions_response do method setup_gbfs_versions_response (line 951) | defp setup_gbfs_versions_response do method setup_free_bike_status_response (line 959) | defp setup_free_bike_status_response do method setup_system_information_response (line 967) | defp setup_system_information_response do method setup_station_information_response (line 975) | defp setup_station_information_response do method setup_vehicle_types_response (line 983) | defp setup_vehicle_types_response do method setup_station_status_response (line 991) | defp setup_station_status_response do method md5 (line 999) | defp md5(value), do: :crypto.hash(:md5, value) |> Base.encode16(case: ... FILE: apps/transport/test/transport/gbfs_to_geojson_test.exs class Transport.GbfsToGeojsonTest (line 1) | defmodule Transport.GbfsToGeojsonTest method simple_station_information_geojson (line 176) | defp simple_station_information_geojson do method set_gbfs_entrypoint_expect (line 206) | defp set_gbfs_entrypoint_expect(entrypoint_url, feeds) do method gbfs_entry_point (line 213) | defp gbfs_entry_point(feeds) do method station_information (line 225) | defp station_information(gbfs_version) do method set_station_information_expect (line 264) | defp set_station_information_expect do method set_station_information_30_expect (line 274) | defp set_station_information_30_expect do method set_station_status_expect (line 284) | defp set_station_status_expect(custom_response \\ nil) do method set_free_bike_status_expect (line 318) | defp set_free_bike_status_expect do method set_geofencing_expect (line 346) | defp set_geofencing_expect do FILE: apps/transport/test/transport/gtfs_data_test.exs class Transport.GTFSDataTest (line 1) | defmodule Transport.GTFSDataTest method drop_views (line 14) | def drop_views(pattern) do method insert_gtfs_stops (line 23) | def insert_gtfs_stops(lat_lon_list) do method get_view_data (line 91) | def get_view_data(view_name) do FILE: apps/transport/test/transport/gtfs_diff_test.exs class Transport.GTFSDiffTest (line 1) | defmodule Transport.GTFSDiffTest method unzip (line 184) | defp unzip(path) do method read_csv (line 190) | defp read_csv(filepath) do method diff (line 194) | defp diff(unzip_1, unzip_2, profile), do: Transport.GTFSDiff.diff(unzi... FILE: apps/transport/test/transport/gtfs_query_test.exs class Transport.GtfsQueryTest (line 1) | defmodule Transport.GtfsQueryTest method insert_a_departure (line 10) | defp insert_a_departure(opts) do FILE: apps/transport/test/transport/gtfs_rt_test.exs class Transport.GTFSRTTest (line 1) | defmodule Transport.GTFSRTTest method timerange (line 201) | def timerange(start_date, end_date) do method unix_seconds_delta (line 205) | defp unix_seconds_delta(nil), do: nil method setup_http_response (line 211) | defp setup_http_response(url, response) do method setup_gtfs_rt_feed (line 215) | defp setup_gtfs_rt_feed(url) do FILE: apps/transport/test/transport/history_fetcher_test.exs class Transport.History.FetcherTest (line 1) | defmodule Transport.History.FetcherTest FILE: apps/transport/test/transport/import_data_service_test.exs class Transport.ImportDataServiceTest (line 1) | defmodule Transport.ImportDataServiceTest FILE: apps/transport/test/transport/import_data_test.exs class Transport.ImportDataTest (line 1) | defmodule Transport.ImportDataTest method http_get_mock_200 (line 27) | def http_get_mock_200(datagouv_id, payload \\ nil) do method http_get_mock_404 (line 39) | def http_get_mock_404(datagouv_id) do method http_stream_mock (line 49) | def http_stream_mock do method http_head_mock (line 59) | def http_head_mock do method db_count (line 65) | def db_count(type) do method mock_data_gouv (line 69) | defp mock_data_gouv(datagouv_id, dataset_payload) do method list_resources (line 79) | defp list_resources do FILE: apps/transport/test/transport/irve/database_importer_test.exs class Transport.IRVE.DatabaseImporterTest (line 1) | defmodule Transport.IRVE.DatabaseImporterTest FILE: apps/transport/test/transport/irve/deduplicator_test.exs class Transport.IRVE.DeduplicatorTest (line 1) | defmodule Transport.IRVE.DeduplicatorTest method create_test_dataframe (line 145) | defp create_test_dataframe do method add_dummy_missing_columns (line 334) | defp add_dummy_missing_columns(data) do FILE: apps/transport/test/transport/irve/dynamic_irve_schema_test.exs class Transport.IRVE.DynamicIRVESchemaTest (line 1) | defmodule Transport.IRVE.DynamicIRVESchemaTest FILE: apps/transport/test/transport/irve/irve_data_frame_test.exs class Transport.IRVE.DataFrameTest (line 1) | defmodule Transport.IRVE.DataFrameTest FILE: apps/transport/test/transport/irve/irve_extractor_test.exs class Transport.IRVE.ExtractorTest (line 1) | defmodule Transport.IRVE.ExtractorTest FILE: apps/transport/test/transport/irve/irve_http_pagination_test.exs class Transport.IRVE.HTTPPaginationTest (line 1) | defmodule Transport.IRVE.HTTPPaginationTest FILE: apps/transport/test/transport/irve/irve_raw_static_consolidation_test.exs class Transport.IRVE.RawStaticConsolidationTest (line 1) | defmodule Transport.IRVE.RawStaticConsolidationTest method mock_datagouv_resources (line 91) | defp mock_datagouv_resources do method mock_resource_downloads (line 113) | defp mock_resource_downloads do FILE: apps/transport/test/transport/irve/irve_static_probes_test.exs class Transport.IRVE.Static.ProbesTest (line 1) | defmodule Transport.IRVE.Static.ProbesTest FILE: apps/transport/test/transport/irve/processing_test.exs class Transport.IRVE.ProcessingTest (line 1) | defmodule Transport.IRVE.ProcessingTest FILE: apps/transport/test/transport/irve/simple_consolidation_test.exs class Transport.IRVE.SimpleConsolidationTest (line 1) | defmodule Transport.IRVE.SimpleConsolidationTest method mock_datagouv_resources (line 223) | defp mock_datagouv_resources do method mock_resource_downloads (line 248) | defp mock_resource_downloads do method resource_mock (line 264) | defp resource_mock(into: into, decode_body: false, compressed: false, ... method resource_mock (line 269) | defp resource_mock(into: into, decode_body: false, compressed: false, ... method resource_mock (line 274) | defp resource_mock(into: into, decode_body: false, compressed: false, ... method build_resource_response (line 278) | defp build_resource_response(path, rows) do FILE: apps/transport/test/transport/irve/static_irve_schema_test.exs class Transport.IRVE.StaticIRVESchemaTest (line 1) | defmodule Transport.IRVE.StaticIRVESchemaTest FILE: apps/transport/test/transport/irve/validation/data_frame_validation_test.exs class Transport.IRVE.Validator.DataFrameValidationTest (line 1) | defmodule Transport.IRVE.Validator.DataFrameValidationTest method test_the_validation (line 227) | defp test_the_validation({:full_default_factory_row, :valid}) do method test_the_validation (line 235) | defp test_the_validation({field, value, validity}) do method to_boolean (line 252) | defp to_boolean(:valid), do: true method to_boolean (line 253) | defp to_boolean(:invalid), do: false method stringify_row (line 255) | defp stringify_row(row), do: row |> Enum.map(fn {a, b} -> {a, b |> to_... method run_dataframe_validators (line 257) | defp run_dataframe_validators(rows) do FILE: apps/transport/test/transport/irve/validation/validator_test.exs class Transport.IRVE.ValidatorTest (line 1) | defmodule Transport.IRVE.ValidatorTest FILE: apps/transport/test/transport/irve/zip_probe_test.exs class Transport.ZipProbeTest (line 1) | defmodule Transport.ZipProbeTest FILE: apps/transport/test/transport/jobs/archive_metrics_job_test.exs class Transport.Test.Transport.Jobs.ArchiveMetricsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ArchiveMetricsJobTest FILE: apps/transport/test/transport/jobs/backfill/backfill_metadata_non_gtfs_resource_history_test.exs class Transport.Jobs.Backfill.ResourceHistoryMetadataNonGTFSTest (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryMetadataNonGTFSTest FILE: apps/transport/test/transport/jobs/backfill/backfill_resource_history_filesize_test.exs class Transport.Jobs.Backfill.ResourceHistoryFileSizeTest (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryFileSizeTest FILE: apps/transport/test/transport/jobs/backfill/backfill_resource_history_resource_id_test.exs class Transport.Jobs.Backfill.ResourceHistoryResourceIdTest (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistoryResourceIdTest FILE: apps/transport/test/transport/jobs/backfill/backfill_resource_history_schema_details_test.exs class Transport.Jobs.Backfill.ResourceHistorySchemaDetailsTest (line 1) | defmodule Transport.Jobs.Backfill.ResourceHistorySchemaDetailsTest FILE: apps/transport/test/transport/jobs/clean_multi_validation_job_test.exs class Transport.Test.Transport.Jobs.CleanMultiValidationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.CleanMultiValidationJobTest method results_for_resource (line 181) | defp results_for_resource(r_id) do method results_for_resource_history (line 186) | defp results_for_resource_history(r_id) do method binary_results_for_resource (line 191) | defp binary_results_for_resource(r_id) do method binary_results_for_resource_history (line 196) | defp binary_results_for_resource_history(r_id) do method for_resource (line 201) | defp for_resource(r_id) do method for_resource_history (line 208) | defp for_resource_history(r_id) do method reload (line 216) | defp reload(%DB.MultiValidation{id: id}) do FILE: apps/transport/test/transport/jobs/clean_on_demand_validation_job_test.exs class Transport.Test.Transport.Jobs.CleanOnDemandValidationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.CleanOnDemandValidationJobTest method load_multivalidation (line 125) | defp load_multivalidation(mv_id) do FILE: apps/transport/test/transport/jobs/clean_orphan_conversions_job_test.exs class Transport.Test.Transport.Jobs.CleanOrphanConversionsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.CleanOrphanConversionsJobTest FILE: apps/transport/test/transport/jobs/consolidate_bnlc_job_test.exs class Transport.Test.Transport.Jobs.ConsolidateBNLCJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ConsolidateBNLCJobTest method expect_s3_stream_upload (line 840) | defp expect_s3_stream_upload do method expect_datagouv_upload_file_http_call (line 853) | defp expect_datagouv_upload_file_http_call do method expect_job_scheduled_to_remove_file (line 870) | defp expect_job_scheduled_to_remove_file do method assert_ok_email_sent (line 884) | defp assert_ok_email_sent do method assert_ko_email_sent (line 898) | defp assert_ko_email_sent do FILE: apps/transport/test/transport/jobs/consolidate_lez_job_test.exs class Transport.Test.Transport.Jobs.ConsolidateLEZsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ConsolidateLEZsJobTest method setup_http_mocks (line 402) | defp setup_http_mocks(url_aires, url_voies) do FILE: apps/transport/test/transport/jobs/conversions/gtfs_to_geojson_converter_job_test.exs class Transport.Jobs.GTFSToGeoJSONConverterJobTest (line 1) | defmodule Transport.Jobs.GTFSToGeoJSONConverterJobTest FILE: apps/transport/test/transport/jobs/conversions/netex_to_geojson_converter_job_test.exs class Transport.Jobs.NeTExToGeoJSONConverterJobTest (line 1) | defmodule Transport.Jobs.NeTExToGeoJSONConverterJobTest FILE: apps/transport/test/transport/jobs/conversions/single_gtfs_to_geojson_converter_job_test.exs class Transport.Jobs.SingleGTFSToGeoJSONConverterJobTest (line 1) | defmodule Transport.Jobs.SingleGTFSToGeoJSONConverterJobTest FILE: apps/transport/test/transport/jobs/conversions/single_netex_to_geojson_converter_job_test.exs class Transport.Jobs.SingleNeTExToGeoJSONConverterJobTest (line 1) | defmodule Transport.Jobs.SingleNeTExToGeoJSONConverterJobTest FILE: apps/transport/test/transport/jobs/counter_cache_test.exs class Transport.Test.Transport.CounterCacheTest (line 1) | defmodule Transport.Test.Transport.CounterCacheTest FILE: apps/transport/test/transport/jobs/create_tokens_job_test.exs class Transport.Test.Transport.Jobs.CreateTokensJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.CreateTokensJobTest FILE: apps/transport/test/transport/jobs/custom_logo_conversion_job_test.exs class Transport.Test.Transport.Jobs.CustomLogoConversionJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.CustomLogoConversionJobTest FILE: apps/transport/test/transport/jobs/database_backup_replication_job_test.exs class Transport.Test.Transport.Jobs.DatabaseBackupReplicationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatabaseBackupReplicationJobTest method setup_mock_permissions_checks (line 252) | defp setup_mock_permissions_checks do method config_is_destination? (line 297) | defp config_is_destination?(%{bucket_name: bucket_name}), do: bucket_n... method config_is_source? (line 298) | defp config_is_source?(%{bucket_name: bucket_name}), do: bucket_name =... FILE: apps/transport/test/transport/jobs/database_vacuum_job_test.exs class Transport.Test.Transport.Jobs.DatabaseVacuumJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatabaseVacuumJobTest FILE: apps/transport/test/transport/jobs/dataset_history_job_test.exs class Transport.Test.Transport.Jobs.DatasetHistoryJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetHistoryJobTest FILE: apps/transport/test/transport/jobs/dataset_now_on_nap_notification_job_test.exs class Transport.Test.Transport.Jobs.DatasetNowOnNAPNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetNowOnNAPNotificationJobTest FILE: apps/transport/test/transport/jobs/dataset_quality_score_test.exs class Transport.Test.Transport.Jobs.DatasetQualityScoreTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetQualityScoreTest FILE: apps/transport/test/transport/jobs/datasets_climate_resilience_bill_not_lo_licence_job_test.exs class Transport.Test.Transport.Jobs.DatasetsClimateResilienceBillNotLOLicenceJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetsClimateResilienceBillNot... FILE: apps/transport/test/transport/jobs/datasets_switching_climate_resilience_bill_job_test.exs class Transport.Test.Transport.Jobs.DatasetsSwitchingClimateResilienceBillJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetsSwitchingClimateResilien... FILE: apps/transport/test/transport/jobs/datasets_without_gtfs_rt_related_resources_notification_job_test.exs class Transport.Test.Transport.Jobs.DatasetsWithoutGTFSRTRelatedResourcesNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DatasetsWithoutGTFSRTRelatedReso... FILE: apps/transport/test/transport/jobs/dedupe_history_job_test.exs class Transport.Test.Transport.Jobs.DedupeHistoryJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DedupeHistoryJobTest method resource_history_with_shas (line 139) | defp resource_history_with_shas(shas) do method count_resource_history (line 143) | defp count_resource_history do FILE: apps/transport/test/transport/jobs/default_token_job_test.exs class Transport.Test.Transport.Jobs.DefaultTokensJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.DefaultTokensJobTest FILE: apps/transport/test/transport/jobs/expiration_notification_job_test.exs class Transport.Test.Transport.Jobs.ExpirationNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ExpirationNotificationJobTest FILE: apps/transport/test/transport/jobs/gbfs_multi_validation_job_test.exs class Transport.Test.Transport.Jobs.GBFSMultiValidationDispatcherJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.GBFSMultiValidationDispatcherJob... FILE: apps/transport/test/transport/jobs/gbfs_operators_notification_job_test.exs class Transport.Test.Transport.Jobs.GBFSOperatorsNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.GBFSOperatorsNotificationJobTest FILE: apps/transport/test/transport/jobs/geo_data/bnlc_to_geodata_test.exs class Transport.Jobs.BNLCToGeoDataTest (line 1) | defmodule Transport.Jobs.BNLCToGeoDataTest FILE: apps/transport/test/transport/jobs/geo_data/gbfs_stations_to_geo_data_test.exs class Transport.Jobs.GBFSStationsToGeoDataTest (line 1) | defmodule Transport.Jobs.GBFSStationsToGeoDataTest method setup_responses (line 187) | defp setup_responses(responses) do FILE: apps/transport/test/transport/jobs/geo_data/irve_to_geodata_test.exs class Transport.Jobs.IRVEToGeoDataTest (line 1) | defmodule Transport.Jobs.IRVEToGeoDataTest FILE: apps/transport/test/transport/jobs/geo_data/lez_to_geo_data_test.exs class Transport.Jobs.LowEmissionZonesToGeoDataTest (line 1) | defmodule Transport.Jobs.LowEmissionZonesToGeoDataTest FILE: apps/transport/test/transport/jobs/gtfs_diff_job_test.exs class Transport.Jobs.GTFSDiffTest (line 1) | defmodule Transport.Jobs.GTFSDiffTest method expect_get_from_bucket (line 58) | defp expect_get_from_bucket(object, file) do method expect_delete_from_bucket (line 69) | defp expect_delete_from_bucket(object) do method expect_get_from_url (line 73) | defp expect_get_from_url(url, file) do method stream_copy (line 82) | defp stream_copy(file, into_stream) do method with_notifications (line 88) | defp with_notifications(func) do method expect_various_notifications (line 95) | defp expect_various_notifications do method expect_various_notifications (line 101) | defp expect_various_notifications(base_url, modified_url) do method expect_running_notifications (line 107) | defp expect_running_notifications(job_id) do method expect_start_notification (line 116) | defp expect_start_notification do method expect_running_notification (line 122) | defp expect_running_notification(job_id, msg) do method expect_completion_notification_for_files (line 126) | defp expect_completion_notification_for_files(job_id) do method expect_completion_notification_for_urls (line 138) | defp expect_completion_notification_for_urls(job_id, base_url, modifie... method enqueue_job (line 150) | defp enqueue_job(args) do method expect_csv_streamed_to_s3 (line 161) | defp expect_csv_streamed_to_s3 do FILE: apps/transport/test/transport/jobs/gtfs_import_stops_job_test.exs class Transport.Test.Transport.Jobs.GTFSImportJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.GTFSImportJobTest FILE: apps/transport/test/transport/jobs/gtfs_import_stops_test.exs class Transport.Test.Transport.Jobs.GTFSImportStopsTest (line 1) | defmodule Transport.Test.Transport.Jobs.GTFSImportStopsTest method data_import_ids (line 16) | def data_import_ids do FILE: apps/transport/test/transport/jobs/gtfs_rt_metadata_test.exs class Transport.Test.Transport.Jobs.GTFSRTMetadataJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.GTFSRTMetadataJobTest method setup_http_response (line 78) | defp setup_http_response(url, response) do method setup_gtfs_rt_feed (line 82) | defp setup_gtfs_rt_feed(url) do FILE: apps/transport/test/transport/jobs/gtfs_rt_multi_validation_job_test.exs class Transport.Test.Transport.Jobs.GTFSRTMultiValidationDispatcherJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.GTFSRTMultiValidationDispatcherJ... FILE: apps/transport/test/transport/jobs/gtfs_to_db_test.exs class Transport.Jobs.GtfsToDBTest (line 1) | defmodule Transport.Jobs.GtfsToDBTest method stream_local_file (line 169) | def stream_local_file(file_name, zip_path) do FILE: apps/transport/test/transport/jobs/import_companies_job_test.exs class Transport.Test.Transport.Jobs.ImportCompaniesJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportCompaniesJobTest method api_result (line 164) | defp api_result(siren) do method setup_http_response (line 183) | defp setup_http_response(siren, response) do FILE: apps/transport/test/transport/jobs/import_dataset_contact_points_job_test.exs class Transport.Test.Transport.Jobs.ImportDatasetContactPointsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportDatasetContactPointsJobTest method subscribed_reasons (line 236) | defp subscribed_reasons(%DB.Dataset{id: dataset_id}, %DB.Contact{id: c... FILE: apps/transport/test/transport/jobs/import_dataset_follower_reuser_improved_data_job_test.exs class Transport.Test.Transport.Jobs.ImportDatasetFollowerReuserImprovedDataJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportDatasetFollowerReuserImpro... method followed_dataset_ids (line 76) | defp followed_dataset_ids(%DB.Contact{} = contact) do FILE: apps/transport/test/transport/jobs/import_dataset_followers_job_test.exs class Transport.Test.Transport.Jobs.ImportDatasetFollowersJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportDatasetFollowersJobTest method dataset_followers (line 142) | defp dataset_followers(%DB.Dataset{} = dataset) do method setup_http_responses (line 146) | defp setup_http_responses(data) do FILE: apps/transport/test/transport/jobs/import_dataset_monthly_metrics_job_test.exs class Transport.Test.Transport.Jobs.ImportDatasetMonthlyMetricsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportDatasetMonthlyMetricsJobTest method setup_http_response (line 218) | defp setup_http_response(datagouv_id, data, options \\ []) do FILE: apps/transport/test/transport/jobs/import_gbfs_feed_contact_point_job_test.exs class Transport.Test.Transport.Jobs.ImportGBFSFeedContactEmailJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportGBFSFeedContactEmailJobTest method subscribed_reasons (line 228) | defp subscribed_reasons(%DB.Dataset{id: dataset_id}, %DB.Contact{id: c... FILE: apps/transport/test/transport/jobs/import_resource_monthly_metrics_job_test.exs class Transport.Test.Transport.Jobs.ImportResourceMonthlyMetricsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportResourceMonthlyMetricsJobTest method setup_http_response (line 206) | defp setup_http_response(resource_datagouv_id, data, options \\ []) do FILE: apps/transport/test/transport/jobs/import_reuses_job_test.exs class Transport.Test.Transport.Jobs.ImportReusesJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ImportReusesJobTest method sample_reuse (line 39) | defp sample_reuse(datagouv_id, datasets \\ [@dataset_datagouv_id]) do method setup_csv_response (line 46) | defp setup_csv_response(datagouv_ids) do FILE: apps/transport/test/transport/jobs/multi_validation_with_error_notification_job_test.exs class Transport.Test.Transport.Jobs.MultiValidationWithErrorNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.MultiValidationWithErrorNotifica... method add_days (line 646) | defp add_days(days), do: DateTime.utc_now() |> DateTime.add(days, :day) FILE: apps/transport/test/transport/jobs/netex_poller_job_test.exs class Transport.Jobs.NeTExPollerJobTest (line 1) | defmodule Transport.Jobs.NeTExPollerJobTest method load_multi_validation (line 154) | defp load_multi_validation(resource_history_id) do method mk_netex_resource (line 160) | defp mk_netex_resource(permanent_url) do method generate_resource_url (line 168) | defp generate_resource_url do method sample_metadata (line 172) | defp sample_metadata, do: %{"end_date" => Date.utc_today() |> Date.to_... method run_polling_job (line 174) | defp run_polling_job(%DB.ResourceHistory{} = resource_history, validat... FILE: apps/transport/test/transport/jobs/new_comments_notification_job_test.exs class Transport.Test.Transport.Jobs.NewCommentsNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.NewCommentsNotificationJobTest method remove_whitespace (line 232) | defp remove_whitespace(value), do: value |> String.replace(~r/\s/, "")... FILE: apps/transport/test/transport/jobs/new_datagouv_datasets_job_test.exs class Transport.Test.Transport.Jobs.NewDatagouvDatasetsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.NewDatagouvDatasetsJobTest method matching_datasets_as_of (line 271) | defp matching_datasets_as_of(datasets, %DateTime{} = then) do method dataset_is_relevant_for_any_rule? (line 277) | defp dataset_is_relevant_for_any_rule?(dataset) do method as_of (line 281) | defp as_of(datasets, %DateTime{} = then) do method test_email_sending (line 288) | defp test_email_sending(%DateTime{} = inserted_at, expected_body) do method setup_datagouv_api_response (line 319) | defp setup_datagouv_api_response(data) do FILE: apps/transport/test/transport/jobs/new_dataset_notifications_job_test.exs class Transport.Test.Transport.Jobs.NewDatasetNotificationsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.NewDatasetNotificationsJobTest method insert_contact_and_notification_subscription (line 73) | defp insert_contact_and_notification_subscription do FILE: apps/transport/test/transport/jobs/notification_subscription_producer_job_test.exs class Transport.Test.Transport.Jobs.NotificationSubscriptionProducerJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.NotificationSubscriptionProducer... FILE: apps/transport/test/transport/jobs/oban_logger_test.exs class Transport.Test.Transport.Jobs.ObanLoggerJobTag (line 1) | defmodule Transport.Test.Transport.Jobs.ObanLoggerJobTag method perform (line 5) | def perform(%Oban.Job{}) do class Transport.Test.Transport.Jobs.ObanLoggerTest (line 10) | defmodule Transport.Test.Transport.Jobs.ObanLoggerTest FILE: apps/transport/test/transport/jobs/on_demand_netex_poller_job_test.exs class Transport.Test.Transport.Jobs.OnDemandNeTExPollerJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.OnDemandNeTExPollerJobTest method sample_metadata (line 19) | defp sample_metadata, do: %{"end_date" => Date.utc_today() |> Date.to_... method create_validation (line 147) | defp create_validation(details) do method mk_url (line 155) | defp mk_url, do: "http://localhost:9999/netex-#{Ecto.UUID.generate()}.... method expect_valid_netex (line 157) | defp expect_valid_netex(validation_id), do: expect_successful_validati... method expect_netex_with_errors (line 159) | defp expect_netex_with_errors(validation_id, messages) do method run_polling_job (line 165) | defp run_polling_job(%DB.MultiValidation{} = validation, validation_id... method reload_validation (line 173) | defp reload_validation(validation) do FILE: apps/transport/test/transport/jobs/on_demand_validation_job_test.exs class Transport.Test.Transport.Jobs.OnDemandValidationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.OnDemandValidationJobTest method create_validation (line 602) | defp create_validation(details, url \\ @url) do method expect_netex_with_errors (line 615) | def expect_netex_with_errors(messages) do method expect_netex_long_lasting (line 622) | def expect_netex_long_lasting do method run_job (line 626) | defp run_job(%DB.MultiValidation{} = validation) do method validator_path (line 631) | defp validator_path, do: Path.join(Application.fetch_env!(:transport, ... method mk_raw_netex_resource (line 633) | defp mk_raw_netex_resource do method reload (line 643) | defp reload(validation) do FILE: apps/transport/test/transport/jobs/periodic_reminder_producers_notification_job_test.exs class Transport.Test.Transport.Jobs.PeriodicReminderProducersNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.PeriodicReminderProducersNotific... method sample_org (line 311) | defp sample_org(%{} = args) do FILE: apps/transport/test/transport/jobs/promote_producer_space_job_test.exs class Transport.Test.Transport.Jobs.PromoteProducerSpaceJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.PromoteProducerSpaceJobTest FILE: apps/transport/test/transport/jobs/promote_reuser_space_job_test.exs class Transport.Test.Transport.Jobs.PromoteReuserSpaceJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.PromoteReuserSpaceJobTest FILE: apps/transport/test/transport/jobs/refresh_autocomplete_job_test.exs class Transport.Test.Transport.Jobs.RefreshAutocompleteJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.RefreshAutocompleteJobTest FILE: apps/transport/test/transport/jobs/remove_history_job_test.exs class Transport.Test.Transport.Jobs.RemoveHistoryJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.RemoveHistoryJobTest FILE: apps/transport/test/transport/jobs/resource_history_job_test.exs class Transport.Test.Transport.Jobs.ResourceHistoryJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ResourceHistoryJobTest method setup_req_mock (line 24) | def setup_req_mock(resource_url, csv_content, opts \\ []) do method setup_aws_mock (line 44) | def setup_aws_mock(resource_id) do method create_resources_for_history (line 683) | defp create_resources_for_history do method count_resource_history (line 786) | defp count_resource_history do method count_resources (line 790) | defp count_resources do FILE: apps/transport/test/transport/jobs/resource_history_jsonschema_validation_job_test.exs class Transport.Jobs.ResourceHistoryJSONSchemaValidationJobTest (line 1) | defmodule Transport.Jobs.ResourceHistoryJSONSchemaValidationJobTest FILE: apps/transport/test/transport/jobs/resource_history_tableschema_validation_job_test.exs class Transport.Jobs.ResourceHistoryTableSchemaValidationJobTest (line 1) | defmodule Transport.Jobs.ResourceHistoryTableSchemaValidationJobTest FILE: apps/transport/test/transport/jobs/resource_history_validation_job_test.exs class Transport.Jobs.ResourceHistoryValidationJobTest (line 1) | defmodule Transport.Jobs.ResourceHistoryValidationJobTest method insert_data (line 15) | def insert_data(validator_name, format) do FILE: apps/transport/test/transport/jobs/resource_unavailable_job_test.exs class Transport.Test.Transport.Jobs.ResourceUnavailableJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ResourceUnavailableJobTest method unavailable_resource (line 326) | defp unavailable_resource, do: new_resource(false) method available_resource (line 327) | defp available_resource, do: new_resource(true) method new_resource (line 329) | defp new_resource(is_available) do method setup_mock_unavailable (line 333) | defp setup_mock_unavailable do method setup_mock_available (line 340) | defp setup_mock_available do method count_resources (line 347) | defp count_resources do method count_resource_unavailabilities (line 351) | defp count_resource_unavailabilities do method create_resources (line 359) | defp create_resources do FILE: apps/transport/test/transport/jobs/resource_unavailable_notification_job_test.exs class Transport.Test.Transport.Jobs.ResourceUnavailableNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ResourceUnavailableNotificationJ... method add_hours (line 534) | defp add_hours(days), do: DateTime.utc_now() |> DateTime.add(days, :hour) method setup_dataset_response (line 536) | defp setup_dataset_response(%DB.Dataset{datagouv_id: datagouv_id}, res... FILE: apps/transport/test/transport/jobs/resource_validation_job_test.exs class Transport.Jobs.ResourceValidationJobTest (line 1) | defmodule Transport.Jobs.ResourceValidationJobTest FILE: apps/transport/test/transport/jobs/resources_changed_notification_job_test.exs class Transport.Test.Transport.Jobs.ResourcesChangedNotificationJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.ResourcesChangedNotificationJobTest FILE: apps/transport/test/transport/jobs/table_size_history_job_test.exs class Transport.Test.Transport.Jobs.TableSizeHistoryJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.TableSizeHistoryJobTest FILE: apps/transport/test/transport/jobs/transport_tools_test.exs class TransportWeb.TransportToolsTest (line 1) | defmodule TransportWeb.TransportToolsTest FILE: apps/transport/test/transport/jobs/update_contacts_job_test.exs class Transport.Test.Transport.Jobs.UpdateContactsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.UpdateContactsJobTest FILE: apps/transport/test/transport/jobs/update_counter_cache_job_test.exs class Transport.Test.Transport.Jobs.UpdateCounterCacheJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.UpdateCounterCacheJobTest FILE: apps/transport/test/transport/jobs/visit_download_statistics_job_test.exs class Transport.Test.Transport.Jobs.VisitDownloadStatisticsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.VisitDownloadStatisticsJobTest FILE: apps/transport/test/transport/jobs/visit_proxy_statistics_job_test.exs class Transport.Test.Transport.Jobs.VisitProxyStatisticsJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.VisitProxyStatisticsJobTest FILE: apps/transport/test/transport/jobs/visit_statistics_base_test.exs class Transport.Test.Transport.Jobs.VisitStatisticsBaseTest (line 1) | defmodule Transport.Test.Transport.Jobs.VisitStatisticsBaseTest FILE: apps/transport/test/transport/jobs/warn_user_inactivity_job_test.exs class Transport.Test.Transport.Jobs.WarnUserInactivityJobTest (line 1) | defmodule Transport.Test.Transport.Jobs.WarnUserInactivityJobTest method insert_contact_inactive_since (line 110) | defp insert_contact_inactive_since(now, %{days: days}) do method assert_warning_is_sent (line 116) | defp assert_warning_is_sent(%DB.Contact{email: email} = contact, subje... method simplify_whitespaces (line 133) | defp simplify_whitespaces(str), do: String.replace(str, ~r/\s/, " ") FILE: apps/transport/test/transport/jobs/workflow_test.exs class Transport.Jobs.WorkflowTest (line 1) | defmodule Transport.Jobs.WorkflowTest FILE: apps/transport/test/transport/notifiers_test.exs class Transport.NotifiersTest (line 1) | defmodule Transport.NotifiersTest FILE: apps/transport/test/transport/schemas_test.exs class Transport.SchemasTest (line 1) | defmodule Transport.SchemasTest method setup_schemas_response (line 75) | defp setup_schemas_response do method assert_cache_key_has_ttl (line 84) | def assert_cache_key_has_ttl(cache_key, expected_ttl \\ 300) do FILE: apps/transport/test/transport/search_communes_test.exs class Transport.SearchCommunesTest (line 1) | defmodule Transport.SearchCommunesTest FILE: apps/transport/test/transport/siri_queries_test.exs class Transport.SIRITest (line 1) | defmodule Transport.SIRITest method parse_xml (line 25) | def parse_xml(payload) do class XMLNewlinesRemover (line 5) | defmodule XMLNewlinesRemover method filter_newlines_from_model (line 6) | def filter_newlines_from_model({element, tags, children}) do FILE: apps/transport/test/transport/stats_handler_test.exs class Transport.StatsHandlerTest (line 1) | defmodule Transport.StatsHandlerTest FILE: apps/transport/test/transport/telemetry_test.exs class Transport.TelemetryTest (line 1) | defmodule Transport.TelemetryTest method stored_events (line 14) | def stored_events, do: DB.Repo.all(DB.Metrics) FILE: apps/transport/test/transport/validators/enroute_chouette_valid_client_test.exs class Transport.EnRouteChouetteValidClientTest (line 1) | defmodule Transport.EnRouteChouetteValidClientTest FILE: apps/transport/test/transport/validators/gbfs_validator_test.exs class Transport.Validators.GBFSValidatorTest (line 1) | defmodule Transport.Validators.GBFSValidatorTest method load_validation (line 77) | defp load_validation do FILE: apps/transport/test/transport/validators/gtfs_rt_validator_test.exs class Transport.Validators.GTFSRTTest (line 1) | defmodule Transport.Validators.GTFSRTTest method validator_path (line 680) | defp validator_path, do: Path.join(Application.fetch_env!(:transport, ... method mock_s3_stream_upload (line 682) | defp mock_s3_stream_upload(%DB.Resource{id: resource_id}) do FILE: apps/transport/test/transport/validators/gtfs_transport_validator_test.exs class Transport.Validators.GtfsTransportValidatorTest (line 1) | defmodule Transport.Validators.GtfsTransportValidatorTest FILE: apps/transport/test/transport/validators/jsonschema_validata_json_test.exs class Transport.Validators.ValidataJsonTest (line 1) | defmodule Transport.Validators.ValidataJsonTest FILE: apps/transport/test/transport/validators/jsonschema_validator_test.exs class Transport.Validators.JSONSchemaTest (line 1) | defmodule Transport.Validators.JSONSchemaTest method name_jsonschema (line 187) | defp name_jsonschema do method setup_zfe_schema (line 194) | defp setup_zfe_schema(version \\ "0.7.2") do method setup_schemas_response (line 213) | defp setup_schemas_response do method mock_load_jsonschema (line 276) | defp mock_load_jsonschema(schema_name, schema_version) do method assert_cache_key_has_ttl (line 286) | def assert_cache_key_has_ttl(cache_key, expected_ttl \\ 300) do method cache_name (line 290) | defp cache_name, do: Transport.Application.cache_name() FILE: apps/transport/test/transport/validators/mobilitydata_gtfs_validator_client_test.exs class Transport.Validators.MobilityDataGTFSValidatorClientTest (line 1) | defmodule Transport.Validators.MobilityDataGTFSValidatorClientTest FILE: apps/transport/test/transport/validators/mobilitydata_gtfs_validator_test.exs class Transport.Validators.MobilityDataGTFSValidatorTest (line 1) | defmodule Transport.Validators.MobilityDataGTFSValidatorTest FILE: apps/transport/test/transport/validators/netex/metadata_extractor_test.exs class Transport.Validators.NeTEx.MetadataExtractorTest (line 1) | defmodule Transport.Validators.NeTEx.MetadataExtractorTest method in_sub_directory (line 268) | defp in_sub_directory(filespecs) do FILE: apps/transport/test/transport/validators/netex/results_adapters/commons_test.exs class Transport.Validators.NeTEx.ResultsAdapters.CommonsTest (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.CommonsTest method example (line 54) | def example do FILE: apps/transport/test/transport/validators/netex/results_adapters/v0_1_0_test.exs class Transport.Validators.NeTEx.ResultsAdapters.V0_1_0Test (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_1_0Test method result_factory (line 74) | defp result_factory(counts) do method error_factory (line 82) | defp error_factory(:"xsd-123", count), do: repeated(@xsd, count) method error_factory (line 83) | defp error_factory(:"valid-day-bits", count), do: repeated(@rule, count) method error_factory (line 84) | defp error_factory(_, _), do: [] method repeated (line 86) | defp repeated(item, times) do FILE: apps/transport/test/transport/validators/netex/results_adapters/v0_2_0_test.exs class Transport.Validators.NeTEx.ResultsAdapters.V0_2_0Test (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_2_0Test method result_factory (line 74) | defp result_factory(counts) do method error_factory (line 82) | defp error_factory(:"xsd-schema", count), do: repeated(@xsd, count) method error_factory (line 83) | defp error_factory(:"base-rules", count), do: repeated(@rule, count) method error_factory (line 84) | defp error_factory(_, _), do: [] method repeated (line 86) | defp repeated(item, times) do FILE: apps/transport/test/transport/validators/netex/results_adapters/v0_2_1_test.exs class Transport.Validators.NeTEx.ResultsAdapters.V0_2_1Test (line 1) | defmodule Transport.Validators.NeTEx.ResultsAdapters.V0_2_1Test method result_factory (line 79) | defp result_factory(counts) do method error_factory (line 87) | defp error_factory(:"xsd-schema", count), do: repeated(@xsd, count) method error_factory (line 88) | defp error_factory(:"base-rules", count), do: repeated(@rule, count) method error_factory (line 89) | defp error_factory(_, _), do: [] method repeated (line 91) | defp repeated(item, times) do FILE: apps/transport/test/transport/validators/netex/validator_test.exs class Transport.Validators.NeTEx.ValidatorTest (line 1) | defmodule Transport.Validators.NeTEx.ValidatorTest method mk_line (line 419) | defp mk_line(public_code, mode) do method modes (line 428) | defp modes(lines) do method mk_netex_resource_with_calendar (line 432) | defp mk_netex_resource_with_calendar(start_date, end_date, network, li... method mk_netex (line 443) | defp mk_netex(start_date, end_date, network, lines), method mk_raw_netex_resource (line 450) | defp mk_raw_netex_resource(content) do method zip_file (line 462) | defp zip_file(path, content) do method generate_resource_url (line 467) | defp generate_resource_url do method calendar_content (line 471) | defp calendar_content(start_date, end_date) do method network_content (line 488) | defp network_content(network_name, lines) do FILE: apps/transport/test/transport/validators/tableschema_validator_test.exs class Transport.Validators.TableSchemaTest (line 1) | defmodule Transport.Validators.TableSchemaTest method setup_mock_validator_url (line 94) | def setup_mock_validator_url(schema_name, url, schema_version) do method setup_validata_response (line 250) | defp setup_validata_response(filename), do: filename |> read_json() |>... method read_json (line 252) | defp read_json(filename), do: File.read!("#{__DIR__}/../../fixture/sch... method validata_response_with_body (line 254) | defp validata_response_with_body(body, status_code \\ 200) do method setup_schemas_response (line 264) | defp setup_schemas_response do FILE: apps/transport/test/transport/validators/validator_selection_test.exs class Transport.ValidatorsSelectionTest (line 1) | defmodule Transport.ValidatorsSelectionTest FILE: apps/transport/test/transport_web/controllers/aoms_controller_test.exs class TransportWeb.AOMsControllerTest (line 1) | defmodule TransportWeb.AOMsControllerTest FILE: apps/transport/test/transport_web/controllers/api/aom_controller_test.exs class TransportWeb.API.AomControllerTest (line 1) | defmodule TransportWeb.API.AomControllerTest FILE: apps/transport/test/transport_web/controllers/api/autocomplete_controller_test.exs class TransportWeb.API.AutocompleteControllerTest (line 1) | defmodule TransportWeb.API.AutocompleteControllerTest method cleanup (line 17) | defp cleanup(value) do method clean_urls (line 23) | defp clean_urls(res), method refresh_autocomplete_view (line 154) | defp refresh_autocomplete_view, do: Ecto.Adapters.SQL.query!(DB.Repo, ... FILE: apps/transport/test/transport_web/controllers/api/datasets_controller_test.exs class TransportWeb.API.DatasetControllerTest (line 1) | defmodule TransportWeb.API.DatasetControllerTest method setup_empty_history_resources (line 1038) | defp setup_empty_history_resources do method resource_page_url (line 1051) | defp resource_page_url(%DB.Resource{id: id}) do FILE: apps/transport/test/transport_web/controllers/api/features_controller_test.exs class TransportWeb.API.FeaturesControllerTest (line 1) | defmodule TransportWeb.API.FeaturesControllerTest FILE: apps/transport/test/transport_web/controllers/api/geo_query_controller_test.exs class TransportWeb.API.GeoQueryControllerTest (line 1) | defmodule TransportWeb.API.GeoQueryControllerTest method assert_expected_geojson (line 178) | defp assert_expected_geojson(%Plug.Conn{} = conn, data: data, expected... FILE: apps/transport/test/transport_web/controllers/api/gtfs_stops_controller_test.exs class TransportWeb.API.GTFSStopsControllerTest (line 1) | defmodule TransportWeb.API.GTFSStopsControllerTest FILE: apps/transport/test/transport_web/controllers/api/schemas_test.exs class TransportWeb.API.SchemasTest (line 1) | defmodule TransportWeb.API.SchemasTest FILE: apps/transport/test/transport_web/controllers/api/stats_controller_test.exs class TransportWeb.API.StatsControllerTest (line 1) | defmodule TransportWeb.API.StatsControllerTest FILE: apps/transport/test/transport_web/controllers/api/validators_controller_test.exs class TransportWeb.API.ValidatorsControllerTest (line 1) | defmodule TransportWeb.API.ValidatorsControllerTest FILE: apps/transport/test/transport_web/controllers/atom_controller_test.exs class TransportWeb.AtomControllerTest (line 1) | defmodule TransportWeb.AtomControllerTest FILE: apps/transport/test/transport_web/controllers/backoffice/backoffice_controller_test.exs class TransportWeb.BackofficeControllerTest (line 1) | defmodule TransportWeb.BackofficeControllerTest FILE: apps/transport/test/transport_web/controllers/backoffice/broken_urls_controller_test.exs class TransportWeb.Backoffice.BrokenUrlsControllerTest (line 1) | defmodule TransportWeb.Backoffice.BrokenUrlsControllerTest FILE: apps/transport/test/transport_web/controllers/backoffice/contact_controller_test.exs class TransportWeb.Backoffice.ContactControllerTest (line 1) | defmodule TransportWeb.Backoffice.ContactControllerTest method sample_contact_args (line 377) | defp sample_contact_args(%{} = args \\ %{}) do FILE: apps/transport/test/transport_web/controllers/backoffice/dataset_controller_test.exs class TransportWeb.Backoffice.DatasetControllerTest (line 1) | defmodule TransportWeb.Backoffice.DatasetControllerTest method set_expectations (line 148) | defp set_expectations do FILE: apps/transport/test/transport_web/controllers/backoffice/notification_subscription_controller_test.exs class TransportWeb.NotificationSubscriptionControllerTest (line 1) | defmodule TransportWeb.NotificationSubscriptionControllerTest FILE: apps/transport/test/transport_web/controllers/backoffice/page_controller_test.exs class TransportWeb.Backoffice.PageControllerTest (line 1) | defmodule TransportWeb.Backoffice.PageControllerTest method sample_org (line 345) | defp sample_org(%{} = args) do method insert_notification_at_datetime (line 360) | defp insert_notification_at_datetime(%{} = args, %DateTime{} = datetim... FILE: apps/transport/test/transport_web/controllers/breaking_news_controller_test.exs class TransportWeb.BreakingNewsControllerTest (line 1) | defmodule TransportWeb.BreakingNewsControllerTest FILE: apps/transport/test/transport_web/controllers/contact_controller_test.exs class TransportWeb.ContactControllerTest (line 1) | defmodule TransportWeb.ContactControllerTest FILE: apps/transport/test/transport_web/controllers/conversion_controller_test.exs class TransportWeb.ConversionControllerTest (line 1) | defmodule TransportWeb.ConversionControllerTest method setup_telemetry_handler (line 79) | defp setup_telemetry_handler do FILE: apps/transport/test/transport_web/controllers/dataset_controller_test.exs class TransportWeb.DatasetControllerTest (line 1) | defmodule TransportWeb.DatasetControllerTest method dataset_href_download_button (line 1448) | def dataset_href_download_button(%Plug.Conn{} = conn, %DB.Dataset{} = ... method dataset_page_title (line 1458) | defp dataset_page_title(content) do method mock_empty_history_resources (line 1465) | defp mock_empty_history_resources do method dataset_titles (line 1473) | defp dataset_titles(document) do method dataset_header_links (line 1477) | defp dataset_header_links(%Plug.Conn{} = conn, %DB.Dataset{} = dataset... method dataset_has_banner_with_text (line 1485) | defp dataset_has_banner_with_text(%Plug.Conn{} = conn, %DB.Dataset{slu... method extract_resource_details (line 1499) | defp extract_resource_details(html) do FILE: apps/transport/test/transport_web/controllers/dataset_search_test.exs class TransportWeb.DatasetSearchControllerTest (line 1) | defmodule TransportWeb.DatasetSearchControllerTest FILE: apps/transport/test/transport_web/controllers/discussion_controller_test.exs class TransportWeb.DiscussionControllerTest (line 1) | defmodule TransportWeb.DiscussionControllerTest FILE: apps/transport/test/transport_web/controllers/espace_producteur_controller_test.exs class TransportWeb.EspaceProducteurControllerTest (line 1) | defmodule TransportWeb.EspaceProducteurControllerTest method assert_redirects_to_info_page (line 1473) | defp assert_redirects_to_info_page(%Plug.Conn{} = conn) do method dataset_datagouv_get_response (line 1478) | defp dataset_datagouv_get_response(dataset_datagouv_id, opts \\ []) do method mocks_for_import_data_etc (line 1512) | defp mocks_for_import_data_etc(dataset_datagouv_id) do method assert_breadcrumb_content (line 1529) | defp assert_breadcrumb_content(doc, expected) do method init_session_for_producer (line 1533) | defp init_session_for_producer(%Plug.Conn{} = conn) do method mock_organization_and_discussion (line 1538) | defp mock_organization_and_discussion( FILE: apps/transport/test/transport_web/controllers/explore_controller_test.exs class TransportWeb.ExploreControllerTest (line 1) | defmodule TransportWeb.ExploreControllerTest FILE: apps/transport/test/transport_web/controllers/gbfs_analyzer_controller_test.exs class TransportWeb.GbfsAnalyzerControllerTest (line 1) | defmodule TransportWeb.GbfsAnalyzerControllerTest FILE: apps/transport/test/transport_web/controllers/landing_page_controller_test.exs class TransportWeb.LandingPageVLSControllerTest (line 1) | defmodule TransportWeb.LandingPageVLSControllerTest FILE: apps/transport/test/transport_web/controllers/nav_test.exs class TransportWeb.NavTest (line 1) | defmodule TransportWeb.NavTest method click_link_by_text (line 30) | def click_link_by_text(conn, html, text) do FILE: apps/transport/test/transport_web/controllers/page_controller_test.exs class TransportWeb.PageControllerTest (line 1) | defmodule TransportWeb.PageControllerTest method sublist? (line 369) | def sublist?(list, sublist) do FILE: apps/transport/test/transport_web/controllers/pagination_helpers_test.exs class TransportWeb.PaginationHelpersTest (line 1) | defmodule TransportWeb.PaginationHelpersTest method custom_path (line 62) | defp custom_path(conn, action, params) do method test_pagination (line 66) | defp test_pagination(n_pages, params) do method test_pagination (line 75) | defp test_pagination(n_pages, params, opts) do method assert_has_aria_label (line 85) | defp assert_has_aria_label(doc) do method assert_has_pages (line 91) | defp assert_has_pages(doc, links) do method extract_link (line 97) | defp extract_link(link) do method setup_pagination (line 107) | defp setup_pagination(n_pages, params) do FILE: apps/transport/test/transport_web/controllers/resource_controller_test.exs class TransportWeb.ResourceControllerTest (line 1) | defmodule TransportWeb.ResourceControllerTest method test_remote_download_error (line 1460) | defp test_remote_download_error(%Plug.Conn{} = conn, mock_status_code) do method setup_netex_validation_report (line 1560) | defp setup_netex_validation_report(resource, version, with_binary_resu... method expected_netex_report_content (line 1593) | def expected_netex_report_content(version, opts \\ []) method expected_netex_report_content (line 1595) | def expected_netex_report_content("0.1.0", opts) do method expected_netex_report_content (line 1600) | def expected_netex_report_content(_, opts) do method connected_user (line 1626) | defp connected_user(conn) do method resource_href_download_button (line 1633) | def resource_href_download_button(%Plug.Conn{} = conn, %DB.Resource{} ... method gtfs_params (line 1643) | defp gtfs_params(issue_type) do method netex_params_for (line 1647) | defp netex_params_for(version) do method expand_paginated_params (line 1657) | defp expand_paginated_params(all_params) do method repeated (line 1668) | defp repeated(enumerable, times) do method page_size (line 1674) | defp page_size do method distinct_xsd_errors (line 1678) | defp distinct_xsd_errors(issues) do FILE: apps/transport/test/transport_web/controllers/reuse_controller_test.exs class TransportWeb.ReuseControllerTest (line 1) | defmodule TransportWeb.ReuseControllerTest FILE: apps/transport/test/transport_web/controllers/reuser_space_controller_test.exs class TransportWeb.ReuserSpaceControllerTest (line 1) | defmodule TransportWeb.ReuserSpaceControllerTest method index_href_attributes (line 788) | def index_href_attributes(%Plug.Conn{} = conn) do method important_info_rows_without_recent_features (line 797) | defp important_info_rows_without_recent_features(doc) do method recent_features_row? (line 803) | defp recent_features_row?(row), do: row |> Floki.text() |> String.cont... FILE: apps/transport/test/transport_web/controllers/seo_test.exs class TransportWeb.SeoMetadataTest (line 1) | defmodule TransportWeb.SeoMetadataTest method title (line 135) | defp title(page) do FILE: apps/transport/test/transport_web/controllers/session_controller_test.exs class TransportWeb.SessionControllerTest (line 1) | defmodule TransportWeb.SessionControllerTest FILE: apps/transport/test/transport_web/controllers/siri_querier_test.exs class TransportWeb.SIRIQuerierLiveTest (line 1) | defmodule TransportWeb.SIRIQuerierLiveTest FILE: apps/transport/test/transport_web/controllers/validation_controller_test.exs class TransportWeb.ValidationControllerTest (line 1) | defmodule TransportWeb.ValidationControllerTest method ensure_waiting_message_is_displayed (line 851) | defp ensure_waiting_message_is_displayed(conn, metadata) do method count_validations (line 868) | defp count_validations do method setup_netex_validation (line 872) | defp setup_netex_validation(conn) do method mark_netex_validation_completed (line 914) | defp mark_netex_validation_completed(multi_validation, arguments) do FILE: apps/transport/test/transport_web/live_views/cache_live_test.exs class TransportWeb.Backoffice.CacheLiveTest (line 1) | defmodule TransportWeb.Backoffice.CacheLiveTest FILE: apps/transport/test/transport_web/live_views/custom_tags_live_test.exs class TransportWeb.CustomTagsLiveTest (line 1) | defmodule TransportWeb.CustomTagsLiveTest FILE: apps/transport/test/transport_web/live_views/dataset_notifications_live_test.exs class TransportWeb.Live.DatasetNotificationsLiveTest (line 1) | defmodule TransportWeb.Live.DatasetNotificationsLiveTest method keep_checked_inputs (line 148) | defp keep_checked_inputs(inputs) do method reject_checked_inputs (line 152) | defp reject_checked_inputs(inputs) do FILE: apps/transport/test/transport_web/live_views/discussions_live_test.exs class Transport.TransportWeb.DiscussionsLiveTest (line 1) | defmodule Transport.TransportWeb.DiscussionsLiveTest method iso8601_string_x_months_ago (line 286) | defp iso8601_string_x_months_ago(x) do method discussions (line 290) | defp discussions do method organization (line 350) | defp organization do FILE: apps/transport/test/transport_web/live_views/edit_dataset_live_test.exs class TransportWeb.EditDatasetLiveTest (line 1) | defmodule TransportWeb.EditDatasetLiveTest FILE: apps/transport/test/transport_web/live_views/email_preview_live_test.exs class TransportWeb.Backoffice.EmailPreviewLiveTest (line 1) | defmodule TransportWeb.Backoffice.EmailPreviewLiveTest method search_by_value (line 78) | defp search_by_value(%Phoenix.LiveViewTest.Element{} = el, value) do method subjects (line 82) | defp subjects(%Phoenix.LiveViewTest.View{} = view), do: view |> render... FILE: apps/transport/test/transport_web/live_views/feedback_live_test.exs class TransportWeb.FeedbackLiveTest (line 1) | defmodule TransportWeb.FeedbackLiveTest method remove_whitespace (line 108) | defp remove_whitespace(value), do: value |> String.replace(~r/(\s)+/, ... FILE: apps/transport/test/transport_web/live_views/follow_dataset_live_test.exs class TransportWeb.Live.FollowDatasetLiveTest (line 1) | defmodule TransportWeb.Live.FollowDatasetLiveTest method assert_renders_logged_out_div (line 270) | defp assert_renders_logged_out_div(%Phoenix.LiveViewTest.View{} = view... method assert_renders_logged_out_div (line 292) | defp assert_renders_logged_out_div(%Phoenix.LiveViewTest.View{} = view... method assert_renders_manage_settings_div (line 304) | defp assert_renders_manage_settings_div(%Phoenix.LiveViewTest.View{} =... method assert_renders_grey_heart (line 324) | defp assert_renders_grey_heart(%Phoenix.LiveViewTest.View{} = view) do method assert_renders_red_heart (line 346) | defp assert_renders_red_heart(%Phoenix.LiveViewTest.View{} = view, dat... method assert_renders_red_heart (line 381) | defp assert_renders_red_heart(%Phoenix.LiveViewTest.View{} = view, dat... FILE: apps/transport/test/transport_web/live_views/gtfs_diff_explain_test.exs class TransportWeb.GtfsDiffExplainTest (line 1) | defmodule TransportWeb.GtfsDiffExplainTest FILE: apps/transport/test/transport_web/live_views/gtfs_diff_select_live_test.exs class TransportWeb.Live.GTFSDiffSelectLiveTest (line 1) | defmodule TransportWeb.Live.GTFSDiffSelectLiveTest method texts (line 160) | defp texts(html_tuples) do method clean_whitespaces (line 166) | defp clean_whitespaces(text) do method render_results (line 172) | defp render_results(args) do method drop_empty (line 178) | defp drop_empty([]), do: nil method drop_empty (line 179) | defp drop_empty(otherwise), do: otherwise FILE: apps/transport/test/transport_web/live_views/notifications_live_test.exs class TransportWeb.Live.NotificationsLiveTest (line 1) | defmodule TransportWeb.Live.NotificationsLiveTest method insert_admin (line 571) | defp insert_admin do method dom_platform_wide_reasons (line 587) | defp dom_platform_wide_reasons(content) do FILE: apps/transport/test/transport_web/live_views/proxy_config_live_test.exs class TransportWeb.Backoffice.ProxyConfigLiveTest (line 1) | defmodule TransportWeb.Backoffice.ProxyConfigLiveTest method setup_proxy_config (line 47) | def setup_proxy_config(slug, siri_slug, aggregate_slug, s3_slug) do method add_events (line 81) | def add_events(item_id) do method event_name (line 88) | defp event_name(type) do method search_by_value (line 204) | defp search_by_value(%Phoenix.LiveViewTest.Element{} = el, value) do method search_by_type (line 208) | defp search_by_type(%Phoenix.LiveViewTest.Element{} = el, value) do method search_by_disk (line 212) | defp search_by_disk(%Phoenix.LiveViewTest.Element{} = el, value) do method slugs (line 216) | defp slugs(%Phoenix.LiveViewTest.View{} = view), do: view |> render() ... FILE: apps/transport/test/transport_web/live_views/proxy_requests_count_live_test.exs class Transport.TransportWeb.ProxyRequestsCountLiveTest (line 1) | defmodule Transport.TransportWeb.ProxyRequestsCountLiveTest FILE: apps/transport/test/transport_web/live_views/rate_limiter_live_test.exs class TransportWeb.Backoffice.RateLimiterLiveTest (line 1) | defmodule TransportWeb.Backoffice.RateLimiterLiveTest FILE: apps/transport/test/transport_web/live_views/reuses_live_test.exs class Transport.TransportWeb.ReusesLiveTest (line 1) | defmodule Transport.TransportWeb.ReusesLiveTest method reuses (line 78) | defp reuses do FILE: apps/transport/test/transport_web/live_views/user_space_datasets_live_test.exs class TransportWeb.Live.UserSpaceDatasetsLiveTest (line 1) | defmodule TransportWeb.Live.UserSpaceDatasetsLiveTest method search_by_value (line 80) | defp search_by_value(%Phoenix.LiveViewTest.Element{} = el, value) do method search_by_type (line 84) | defp search_by_type(%Phoenix.LiveViewTest.Element{} = el, value) do method dataset_titles (line 88) | defp dataset_titles(%Phoenix.LiveViewTest.View{} = view), do: view |> ... FILE: apps/transport/test/transport_web/live_views/validate_resource_live_test.exs class Transport.TransportWeb.Live.ValidateResourceLiveTest (line 1) | defmodule Transport.TransportWeb.Live.ValidateResourceLiveTest method assert_validation_report_link (line 381) | defp assert_validation_report_link(content, %DB.MultiValidation{ method assert_loading_state (line 395) | defp assert_loading_state(content, opts \\ []) do method upload_file (line 405) | defp upload_file(%Phoenix.LiveViewTest.View{} = view) do method assert_job_has_been_enqueued (line 415) | defp assert_job_has_been_enqueued(multi_validation) do FILE: apps/transport/test/transport_web/plugs/custom_secure_browser_headers_test.exs class TransportWeb.Plugs.CustomSecureBrowserHeadersTest (line 1) | defmodule TransportWeb.Plugs.CustomSecureBrowserHeadersTest FILE: apps/transport/test/transport_web/plugs/producer_data_test.exs class TransportWeb.Plugs.ProducerDataTest (line 1) | defmodule TransportWeb.Plugs.ProducerDataTest FILE: apps/transport/test/transport_web/plugs/rate_limiter_test.exs class TransportWeb.Plugs.RateLimiterTest (line 1) | defmodule TransportWeb.Plugs.RateLimiterTest FILE: apps/transport/test/transport_web/plugs/worker_healthcheck_test.exs class TransportWeb.Plugs.WorkerHealthcheckTest (line 1) | defmodule TransportWeb.Plugs.WorkerHealthcheckTest method plug_enabled? (line 132) | def plug_enabled?, do: true FILE: apps/transport/test/transport_web/routing/canonical_host_redirect_test.exs class TransportWeb.CanonicalRoutingTest (line 1) | defmodule TransportWeb.CanonicalRoutingTest FILE: apps/transport/test/transport_web/routing/headers_and_cookies_test.exs class TransportWeb.HeadersAndCookiesTest (line 1) | defmodule TransportWeb.HeadersAndCookiesTest FILE: apps/transport/test/transport_web/routing/health_check_test.exs class TransportWeb.HealthCheckTest (line 1) | defmodule TransportWeb.HealthCheckTest FILE: apps/transport/test/transport_web/routing/proxy_routing_test.exs class TransportWeb.ProxyRoutingTest (line 1) | defmodule TransportWeb.ProxyRoutingTest FILE: apps/transport/test/transport_web/routing/put_locale_test.exs class TransportWeb.Plugs.PutLocaleTest (line 1) | defmodule TransportWeb.Plugs.PutLocaleTest FILE: apps/transport/test/transport_web/routing/router_test.exs class TransportWeb.Routing.RouterTest (line 1) | defmodule TransportWeb.Routing.RouterTest FILE: apps/transport/test/transport_web/session_test.exs class TransportWeb.SessionTest (line 1) | defmodule TransportWeb.SessionTest method pan_org (line 81) | def pan_org do FILE: apps/transport/test/transport_web/views/avatar_view_test.exs class TransportWeb.LayoutViewTest (line 1) | defmodule TransportWeb.LayoutViewTest FILE: apps/transport/test/transport_web/views/backoffice/page_view_test.exs class TransportWeb.Backoffice.PageViewTest (line 1) | defmodule TransportWeb.Backoffice.PageViewTest FILE: apps/transport/test/transport_web/views/dataset_view_test.exs class TransportWeb.DatasetViewTest (line 1) | defmodule TransportWeb.DatasetViewTest method to_html (line 337) | defp to_html(%Phoenix.LiveView.Rendered{} = rendered) do method to_html (line 341) | defp to_html({:safe, _} = content), do: Phoenix.HTML.safe_to_string(co... FILE: apps/transport/test/transport_web/views/error_view_test.exs class TransportWeb.ErrorViewTest (line 1) | defmodule TransportWeb.ErrorViewTest FILE: apps/transport/test/transport_web/views/markdown_handler_test.exs class TransportWeb.MarkdownHandlerTest (line 1) | defmodule TransportWeb.MarkdownHandlerTest FILE: apps/transport/test/transport_web/views/no_html_in_markdown_templates_test.exs class NoHTMLInMarkdownTemplatesTest (line 1) | defmodule NoHTMLInMarkdownTemplatesTest method with_html_link? (line 14) | def with_html_link?(file) do FILE: apps/transport/test/transport_web/views/page_view_test.exs class TransportWeb.PageViewTest (line 1) | defmodule TransportWeb.PageViewTest FILE: apps/transport/test/transport_web/views/resource_view_test.exs class TransportWeb.ResourceViewTest (line 1) | defmodule TransportWeb.ResourceViewTest FILE: apps/transport/test/unlock/batch_metrics_test.exs class Unlock.BatchMetricsTest (line 1) | defmodule Unlock.BatchMetricsTest FILE: apps/transport/test/unlock/config_fetcher_test.exs class Unlock.ConfigFetcherTest (line 1) | defmodule Unlock.ConfigFetcherTest method parse_config (line 4) | def parse_config(yaml), do: Unlock.Config.Fetcher.convert_yaml_to_conf... FILE: apps/transport/test/unlock/controllers/unlock_controller_test.exs class Unlock.ControllerTest (line 1) | defmodule Unlock.ControllerTest method setup_proxy_config (line 31) | def setup_proxy_config(config) do method setup_telemetry_handler (line 1369) | defp setup_telemetry_handler do method existing_proxy_headers (line 1399) | defp existing_proxy_headers do FILE: apps/transport/test/unlock/dynamic_irve/feed_worker_test.exs class Unlock.DynamicIRVE.FeedWorkerTest (line 1) | defmodule Unlock.DynamicIRVE.FeedWorkerTest method await_genserver_messages_processed (line 62) | defp await_genserver_messages_processed(pid), do: :sys.get_state(pid) method feed (line 64) | defp feed(slug) do method csv_fixture (line 73) | defp csv_fixture do FILE: apps/transport/test/unlock/dynamic_irve_integration_test.exs class Unlock.DynamicIRVE.IntegrationTest (line 1) | defmodule Unlock.DynamicIRVE.IntegrationTest method build_df (line 68) | defp build_df(marker) do method setup_telemetry_handler (line 77) | defp setup_telemetry_handler do FILE: apps/transport/test/unlock/enforce_ttl_test.exs class Unlock.EnforceTTLTest (line 1) | defmodule Unlock.EnforceTTLTest method cache_put (line 13) | defp cache_put(key, ttl \\ nil), do: Cachex.put!(cache_name(), key, 42... method setup_proxy_config (line 131) | def setup_proxy_config(config) do FILE: apps/transport/test/unlock/finch_impl_test.exs class Unlock.FinchImplTests (line 1) | defmodule Unlock.FinchImplTests FILE: apps/transport/test/unlock/github_config_test.exs class UnlockGitHubConfigTest (line 1) | defmodule UnlockGitHubConfigTest method feeds_yaml_config (line 20) | def feeds_yaml_config do FILE: apps/transport/test/unlock/plugs/token_auth_test.exs class Unlock.Plugs.TokenAuthTest (line 1) | defmodule Unlock.Plugs.TokenAuthTest method setup_token_auth_enabled (line 140) | defp setup_token_auth_enabled(enabled) do method setup_proxy_config (line 146) | defp setup_proxy_config(config) do method detach_telemetry_handlers (line 150) | defp detach_telemetry_handlers do FILE: apps/transport/test/unlock/shared_test.exs class Unlock.SharedTest (line 1) | defmodule Unlock.SharedTest method cache_put (line 10) | defp cache_put(key, ttl \\ nil), do: Cachex.put!(cache_name(), key, 42... FILE: apps/transport/test/unlock/siri_test.exs class Unlock.SIRITests (line 1) | defmodule Unlock.SIRITests FILE: apps/transport/test/with_mock_must_not_use_async_check_test.exs class WithMockMustNotUseAsyncCheckTest (line 1) | defmodule WithMockMustNotUseAsyncCheckTest method potential_incorrect_use_detected? (line 19) | def potential_incorrect_use_detected?(file) do FILE: apps/transport/test/with_mox_verify_on_exit_test.exs class WithMoxVerifyOnExitTest (line 1) | defmodule WithMoxVerifyOnExitTest method potential_mox_issue_detected? (line 17) | def potential_mox_issue_detected?(file) do FILE: apps/transport/test/zip_test.exs class Transport.ZipMetaDataExtractorTest (line 1) | defmodule Transport.ZipMetaDataExtractorTest FILE: generate_deps_changelogs.exs class Scanner (line 15) | defmodule Scanner method scan (line 16) | def scan(mix_lock_content) do class YarnScanner (line 71) | defmodule YarnScanner method at (line 74) | def at(:local), method at (line 77) | def at(ref) do method diff_url (line 83) | def diff_url(name, v1, v2) do method parse (line 93) | defp parse(lock, json) do FILE: mix.exs class Transport.MixProject (line 1) | defmodule Transport.MixProject method project (line 4) | def project do method deps (line 21) | defp deps do method aliases (line 35) | defp aliases do method cli (line 55) | def cli do method aliases (line 59) | defp aliases(:dev) do method aliases (line 67) | defp aliases(_env) do method set_worker_env (line 71) | defp set_worker_env(_) do FILE: ops_tests/ops_tests.exs class Transport.OpsTests (line 10) | defmodule Transport.OpsTests method get_header! (line 111) | def get_header!(headers, header) do method assert_redirect (line 116) | def assert_redirect(from: url, to: target_url) do FILE: screens/screens.exs class EasyInspect (line 4) | defmodule EasyInspect method show (line 5) | def show(x) do class Transport.Data.Screens (line 10) | defmodule Transport.Data.Screens FILE: scripts/api/spec_check.exs class Query (line 6) | defmodule Query method cache_dir (line 7) | def cache_dir, do: Path.join(__ENV__.file, "../cache-dir") |> Path.exp... method cached_get! (line 9) | def cached_get!(url) do class TestSuite (line 15) | defmodule TestSuite method api_spec (line 22) | def api_spec, do: TransportWeb.API.Spec.spec() FILE: scripts/backfill_multi_validation_binary_result.exs class Script (line 1) | defmodule Script method backfill_all (line 9) | def backfill_all do method list_validations (line 18) | defp list_validations do method process_validation (line 27) | defp process_validation(mv_id) do method backfill_binary_result_and_digest (line 31) | defp backfill_binary_result_and_digest(%DB.MultiValidation{result: nil... method backfill_binary_result_and_digest (line 35) | defp backfill_binary_result_and_digest(%DB.MultiValidation{binary_resu... method backfill_binary_result_and_digest (line 43) | defp backfill_binary_result_and_digest(%DB.MultiValidation{} = mv) do method build_changeset (line 47) | defp build_changeset(%DB.MultiValidation{} = mv) do FILE: scripts/backfill_multi_validation_digest.exs class Script (line 1) | defmodule Script method backfill_all (line 5) | def backfill_all do method backfill_multi_validation (line 20) | def backfill_multi_validation(%DB.MultiValidation{result: nil, digest:... method backfill_multi_validation (line 24) | def backfill_multi_validation(%DB.MultiValidation{validator: validator... method backfill_multi_validation (line 68) | def backfill_multi_validation(%DB.MultiValidation{} = mv) do method save (line 72) | defp save(nil, _mv) do method save (line 75) | defp save(digest, mv) do FILE: scripts/backfill_netex_metadata.exs class Script (line 1) | defmodule Script method backfill_all (line 8) | def backfill_all(options \\ []) do method load_candidates (line 16) | defp load_candidates(options) do method document_query (line 30) | defp document_query([], true) do method document_query (line 34) | defp document_query(resource_ids, force) do method from_multi_validation_and_resource_metadata_for_historized_resources (line 48) | def from_multi_validation_and_resource_metadata_for_historized_resourc... method is_netex (line 56) | defp is_netex(query) do method without_computed_validity_dates (line 62) | defp without_computed_validity_dates(query, true), do: query method without_computed_validity_dates (line 64) | defp without_computed_validity_dates(query, _) do method limited_to_subset (line 70) | defp limited_to_subset(query, []), do: query method limited_to_subset (line 72) | defp limited_to_subset(query, resource_ids) do method oldest_first (line 76) | def oldest_first(query) do method log_count (line 80) | defp log_count(candidates) do method backfill (line 86) | defp backfill([rh_id, rm_id]) do method backfill (line 92) | defp backfill(%DB.ResourceHistory{} = resource_history, %DB.ResourceMe... FILE: scripts/chouette_valid_rulesets.exs class Script (line 1) | defmodule Script method document_rulesets (line 20) | def document_rulesets(filename) do method list_rulesets (line 25) | def list_rulesets do method list_revisions (line 30) | def list_revisions(slug) do method find_ruleset_id (line 38) | def find_ruleset_id(slug) do method get_ruleset (line 43) | def get_ruleset(slug) do method publish_ruleset (line 48) | def publish_ruleset do method upsert_ruleset (line 62) | def upsert_ruleset(ruleset, name, slug) do method with_file (line 69) | defp with_file(file, proc), do: File.write(file, with_string(proc)) method with_string (line 71) | defp with_string(proc) do method prepend_enroute_starter_kit (line 80) | defp prepend_enroute_starter_kit(json) do method read_enroute_starter_kit (line 87) | defp read_enroute_starter_kit do class CLI (line 94) | defmodule CLI method handle_args (line 95) | def handle_args(argv) do method help (line 109) | def help do FILE: scripts/compare_http.exs class Downloader (line 6) | defmodule Downloader method url_hash (line 7) | def url_hash(url) do method get (line 12) | def get(:http_poison, url) do method get (line 19) | def get(:req, url) do method cache_dir (line 31) | def cache_dir, do: Path.join(__ENV__.file, "../cache-dir") |> Path.exp... method create_cache_dir (line 33) | def create_cache_dir do method cached_get (line 39) | def cached_get(client, url, message \\ "") do class ZipTools (line 61) | defmodule ZipTools method to_tmp_file (line 62) | def to_tmp_file(filename, content) do method get_zip_metadata (line 75) | def get_zip_metadata(:old, content) do method get_zip_metadata (line 83) | def get_zip_metadata(content) do class Script (line 100) | defmodule Script method run! (line 103) | def run!() do method show_large (line 193) | def show_large do FILE: scripts/contacts/insert_notification_subscriptions.exs class Converter (line 7) | defmodule Converter method convert (line 8) | def convert({"expiration", data}) do method convert (line 14) | def convert({reason, emails}) do FILE: scripts/download_resource_history_files.exs class Tooling (line 13) | defmodule Tooling method query (line 15) | def query() do class SyncS3LatestResourceHistory (line 24) | defmodule SyncS3LatestResourceHistory method sync! (line 25) | def sync!(minio_folder) do FILE: scripts/drop_and_recreate_database.exs class Command (line 4) | defmodule Command method mix_root_folder (line 5) | def mix_root_folder, do: Path.join(__DIR__, "..") method run (line 6) | def run(cmd), do: {_, 0} = System.shell(cmd, cd: mix_root_folder()) FILE: scripts/elixir_predicate_upgrade.exs class Patcher (line 11) | defmodule Patcher method build_new_method_name (line 14) | def build_new_method_name(old_method_name) do method patch_call (line 20) | def patch_call(%{"check" => "Credo.Check.Readability.PredicateFunction... FILE: scripts/git_diff_experiment.exs class GTFSCompare (line 7) | defmodule GTFSCompare method maybe_download (line 10) | def maybe_download(url, local_file) do method maybe_unpack (line 18) | def maybe_unpack(local_file, local_folder) do method git_compare (line 27) | def git_compare(base, new) do FILE: scripts/ingest_resource_history_files.exs class Report (line 5) | defmodule Report method report (line 6) | def report(data_import_batch_id) do FILE: scripts/internal_zip_checksum_experiment.exs class ZipMetaDataExtractor (line 6) | defmodule ZipMetaDataExtractor method extract! (line 12) | def extract!(file) do method enrich (line 21) | def enrich(entry, unzip) do method compute_checksum (line 32) | def compute_checksum(stream, algorithm) do class DemoDownload (line 41) | defmodule DemoDownload method download (line 45) | def download do FILE: scripts/irve/dynamic-irve.exs class CacheDir (line 3) | defmodule CacheDir method cache_dir (line 4) | def cache_dir, do: Path.join(__ENV__.file, "../cache-dir") |> Path.exp... class Query (line 47) | defmodule Query method cached_get! (line 48) | def cached_get!(url, options \\ []) do class IRVECheck (line 96) | defmodule IRVECheck method get_body (line 97) | def get_body(url, options \\ []) do method parse_csv (line 110) | def parse_csv(body) do method get_headers (line 116) | def get_headers(body) do method is_dynamic_irve? (line 124) | def is_dynamic_irve?(headers) do method time_window (line 128) | def time_window(rows) do class FrictionlessValidator (line 141) | defmodule FrictionlessValidator method validate (line 144) | def validate(file_url, schema \\ @latest_dynamic_irve_schema) do method errors_summary (line 163) | def errors_summary(output) do method did_validation_really_occur? (line 177) | def did_validation_really_occur?(output) do method really_valid? (line 189) | def really_valid?(output) do class Display (line 242) | defmodule Display method print_table (line 243) | def print_table(data, columns, opts \\ []) do FILE: scripts/irve/horodatage-formats.exs class HorodatageAnalysis (line 11) | defmodule HorodatageAnalysis method run (line 15) | def run do FILE: scripts/irve/stats.exs class Stats (line 19) | defmodule Stats method compute (line 22) | def compute(file) do method cached_download! (line 36) | def cached_download!(url, file) do method inspect (line 44) | def inspect(result, label \\ nil) do method get_resource_id_series (line 53) | def get_resource_id_series({filename, column_atom}) do method local_path (line 59) | def local_path(identifier), do: Path.join(__DIR__, "../../cache-dir/#{... method maybe_download (line 61) | def maybe_download(:on_disk, _local_path), do: nil method maybe_download (line 62) | def maybe_download(url, local_path), do: Stats.cached_download!(url, l... method compute_stats (line 64) | def compute_stats({url_or_atom, identifier, _resource_id_column}) do FILE: scripts/netex-accessibilite.exs class IndentedElementPrinterParser (line 23) | defmodule IndentedElementPrinterParser method handle_event (line 34) | def handle_event(:start_element, {name, _attributes}, state) do method handle_event (line 44) | def handle_event(:end_element, _, state) do method handle_event (line 49) | def handle_event(_, _, state), do: {:ok, state} FILE: scripts/notion_link_databases.exs class NotionClient (line 6) | defmodule NotionClient method notion_headers (line 13) | def notion_headers, method get_notion_page_content (line 16) | def get_notion_page_content(page_id) do method get_notion_database_content (line 20) | def get_notion_database_content(database_id, start_cursor: start_curso... method get_notion_database_content (line 29) | def get_notion_database_content(database_id) do method results_content_follow_pagination (line 34) | def results_content_follow_pagination(database_id) do method results_content_follow_pagination (line 39) | def results_content_follow_pagination(_database_id, nil, acc) do method results_content_follow_pagination (line 43) | def results_content_follow_pagination(database_id, next_cursor, acc) do method list_of_tuples_text_ref_real_id (line 48) | def list_of_tuples_text_ref_real_id(results) do method patch_organisation_relation_property (line 63) | def patch_organisation_relation_property(entry_id, organisation_id) do method link_organisations_to_contacts (line 78) | def link_organisations_to_contacts(organisation_database_id, contact_d... FILE: scripts/oban/oban_experiments.exs class Repo (line 11) | defmodule Repo class Migration0 (line 17) | defmodule Migration0 method change (line 20) | def change do class Main (line 25) | defmodule Main method start_ecto (line 28) | def start_ecto do method create_db (line 37) | def create_db do method main (line 45) | def main do class LongRunningJob (line 60) | defmodule LongRunningJob method perform (line 65) | def perform(%Oban.Job{}) do FILE: scripts/oban/oban_suite.exs class ObanSuite (line 5) | defmodule ObanSuite method run_test (line 23) | def run_test(signal) do FILE: scripts/pagination_example.exs class EnvConfig (line 6) | defmodule EnvConfig method read! (line 7) | def read!() do class NotionClient (line 15) | defmodule NotionClient method http_options (line 16) | def http_options(notion_secret) do method build_base_url (line 20) | def build_base_url(table_id), do: "https://api.notion.com/v1/databases... method database_items_via_stream_resource (line 24) | def database_items_via_stream_resource(table_id, notion_secret) do method database_items_via_stream_unfold (line 53) | def database_items_via_stream_unfold(table_id, notion_secret) do class Mapper (line 76) | defmodule Mapper method run (line 77) | def run(stream) do FILE: scripts/req_httpoison_testing.exs class Downloader (line 5) | defmodule Downloader method handle (line 6) | def handle(folder, resource) do class Comparer (line 41) | defmodule Comparer method checksum (line 43) | def checksum(file, :cached) do method get_zip_metadata (line 54) | def get_zip_metadata(filename) do method compare_json (line 69) | def compare_json(file_1, file_2) do method compare_csv (line 74) | def compare_csv(file_1, file_2) do FILE: scripts/search_engine.exs class Search.ErrorView (line 24) | defmodule Search.ErrorView method render (line 25) | def render(template, _), do: Phoenix.Controller.status_message_from_te... class Search.HomeLive (line 28) | defmodule Search.HomeLive method mount (line 33) | def mount(_params, _session, socket) do method phx_vsn (line 42) | defp phx_vsn, do: Application.spec(:phoenix, :vsn) method lv_vsn (line 43) | defp lv_vsn, do: Application.spec(:phoenix_live_view, :vsn) method render (line 45) | def render("live.html", assigns) do method render (line 65) | def render(assigns) do method nil_if_blank (line 109) | def nil_if_blank(value) do method update_datasets (line 114) | def update_datasets(socket, params) do method handle_event (line 127) | def handle_event("change_form", params, socket) do class Search.Router (line 132) | defmodule Search.Router class Search.Endpoint (line 147) | defmodule Search.Endpoint class SearchIndexer (line 153) | defmodule SearchIndexer method fetch_items (line 156) | def fetch_items do method find_resource_history (line 164) | def find_resource_history(resource_id) do method find_resource_metadata (line 172) | def find_resource_metadata(resource_history_id) do method compute_payload (line 180) | def compute_payload(%DB.Dataset{} = dataset) do method reindex! (line 213) | def reindex! do class Searcher (line 224) | defmodule Searcher method maybe_search_title (line 227) | def maybe_search_title(query, nil), do: query method maybe_search_title (line 229) | def maybe_search_title(query, search_title) do method maybe_search_resources_formats (line 236) | def maybe_search_resources_formats(query, nil), do: query method maybe_search_resources_formats (line 238) | def maybe_search_resources_formats(query, search_format) do method maybe_search_resources_modes (line 244) | def maybe_search_resources_modes(query, nil), do: query method maybe_search_resources_modes (line 246) | def maybe_search_resources_modes(query, mode) do method search (line 251) | def search(options) do method render (line 260) | def render(%{} = item) do method render (line 269) | def render(items) do FILE: scripts/siri/siri_check.exs class Helper (line 26) | defmodule Helper method halt (line 27) | def halt(error) do method exit (line 32) | def exit do method config (line 36) | def config do