Current section
Files
Jump to
Current section
Files
lib/holidex.ex
defmodule Holidex do
@moduledoc false
alias Holidex.Countries.Canada
alias Holidex.NationalHoliday
@type country_code :: :ca
@countries [
%{country_code: :ca, name: "Canada"}
]
@doc """
Returns a list of supported countries.
## Example
iex> Holidex.supported_countries()
[%{country_code: :ca, name: "Canada"}, ...]
"""
@spec supported_countries() :: [%{country_code: country_code(), name: String.t()}]
def supported_countries, do: @countries
@doc """
Returns a list of holidays for the given country code and year.
## Parameters
- `country_code`: The country code as an atom (e.g., `:ca` for Canada)
- `year`: The year for which to retrieve holidays
## Example
iex> Holidex.holidays(:ca, 2023)
{:ok, [%Holidex.NationalHoliday{name: "New Year's Day", date: ~D[2023-01-01], ...}, ...]}
"""
@spec holidays(country_code(), integer()) ::
{:ok, list(NationalHoliday.t())} | {:error, atom()}
def holidays(:ca, year), do: Canada.holidays(year)
end