Packages

Holidex provides a purely functional API to retrieve public holidays by country. Effortlessly integrate holiday information into your applications.

Current section

Files

Jump to
holidex lib holidex.ex
Raw

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"}, %{country_code: :us, name: "United States"}]
"""
@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