Packages

A collection of German Bank Data including BIC, Bankcodes, PAN and more useful information based on the Bundesbank Data Set

Current section

Files

Jump to
bundesbank lib loader.ex
Raw

lib/loader.ex

defmodule Bundesbank.Loader do
@moduledoc false
alias Bundesbank.Bank
NimbleCSV.define(MyParser, separator: ",", escape: "\"")
# load all banks from data.csv and transform to a collection of structs:
# [%Bundesbank.Bank{bank_name: "Deutsche Bank Fil Berlin", bic: "DEUTDEBBXXX", change_code: "U", ...},
# %Bundesbank.Bank{bank_name: "DB PFK (Deutsche Bank PGK)", bic: "DEUTDEDBBER", ...
def load do
keywords = [
:code,
:property,
:description,
:postal_code,
:city,
:bank_name,
:pan,
:bic,
:mark_of_conformity,
:record_number,
:change_code,
:delete_code,
:emulation_code
]
data_path(["data.csv"])
|> File.stream!()
|> MyParser.parse_stream()
|> Enum.map(fn bank -> Enum.zip(keywords, bank) end)
|> Enum.map(fn bank -> struct(Bank, bank) end)
end
defp data_path(path) do
Path.join([:code.priv_dir(:bundesbank), "data"] ++ path)
end
end