Current section
Files
Jump to
Current section
Files
lib/phonecodelib.ex
defmodule Phonecodelib do
@moduledoc """
Documentation for `Phonecodelib`.
"""
@doc """
Filter using country iso.˚
## Examples
iex> Phonecodelib.filter_by_iso "ke"
[
"%"{
"id"=> 110,
"iso""=>""KE",
"iso3""=>""KEN",
"name""=>""KENYA",
"nicename""=>""Kenya",
"numcode"=> 404,
"phonecode"=> 254
}
]
"""
def filter_by_iso(incoming) do
IO.puts incoming
{_a, b } = get_json()
b
|> get_in( [Access.filter(&(&1["iso"] === String.upcase(incoming)))])
end
@doc """
Filter using country iso3.
## Examples
iex> Phonecodelib.filter_by_iso3 "ken"
[
"%"{
"id"=> 110,
"iso""=>""KE",
"iso3""=>""KEN",
"name""=>""KENYA",
"nicename""=>""Kenya",
"numcode"=> 404,
"phonecode"=> 254
}
]
"""
def filter_by_iso3(incoming) do
IO.puts incoming
{_a, b } = get_json()
b
|> get_in( [Access.filter(&(&1["iso3"] === String.upcase(incoming)))])
end
@doc """
Filter using country name.
## Examples
iex> Phonecodelib.filter_by_name "kenya"
[
"%"{
"id"=> 110,
"iso""=>""KE",
"iso3""=>""KEN",
"name""=>""KENYA",
"nicename""=>""Kenya",
"numcode"=> 404,
"phonecode"=> 254
}
]
"""
def filter_by_name(incoming) do
IO.puts incoming
{_a, b } = get_json()
b
|> get_in( [Access.filter(&(&1["name"] === String.upcase(incoming)))])
end
@doc """
Filter using country code/phonecode.
## Examples
iex> Phonecodelib.filter_by_phonecode 254
[
"%"{
"id"=> 110,
"iso""=>""KE",
"iso3""=>""KEN",
"name""=>""KENYA",
"nicename""=>""Kenya",
"numcode"=> 404,
"phonecode"=> 254
}
]
"""
def filter_by_phonecode(incoming) do
IO.puts incoming
{_a, b } = get_json()
b
|> get_in( [Access.filter(&(&1["phonecode"] === incoming))])
end
def get_json() do
with {:ok, body} <- File.read("countries.json"),
{:ok, json} <- Poison.decode(body), do: {:ok, json}
end
end