defmodule YGO do @moduledoc """ Documentation for `YGO`. """ @doc """ Get card information based on input paramters. Args: * `params` - Map containing the card's searching properties. ## Examples {:ok, [ %{ "archetype" => "Dark Magician", "atk" => 2500, "attribute" => "DARK", "card_images" => [ %{ "id" => 46986414, "image_url" => "https://storage.googleapis.com/ygoprodeck.com/pics/46986414.jpg", "image_url_small" => "https://storage.googleapis.com/ygoprodeck.com/pics_small/46986414.jpg" }, ... ], "card_prices" => [ %{ "amazon_price" => "2.03", "cardmarket_price" => "0.02", ... } ], "card_sets" => [ %{ "set_code" => "CT13-EN003", "set_name" => "2016 Mega-Tins", ... }, ... ], "def" => 2100, "desc" => "The ultimate wizard in terms of attack and defense.", "id" => 46986414, "level" => 7, "name" => "Dark Magician", "race" => "Spellcaster", "type" => "Normal Monster" } ]} """ @spec get_card_information(params :: map()) :: {:error, String.t()} | {:ok, [map()]} defdelegate get_card_information(params), to: YGO.CardInformation @doc """ Get a random card. """ @spec get_random_card :: {:error, String.t()} | {:ok, [map()]} defdelegate get_random_card, to: YGO.RandomCard @doc """ Get card set information. """ @spec get_card_set_information(set :: String.t()) :: {:error, String.t()} | {:ok, [map()]} defdelegate get_card_set_information(set), to: YGO.CardSetInformation @doc """ Get all card sets. """ @spec get_card_sets :: {:error, String.t()} | {:ok, [map()]} defdelegate get_card_sets, to: YGO.CardSets @doc """ Get all card archetypes. """ @spec get_card_archetypes :: {:error, String.t()} | {:ok, [map()]} defdelegate get_card_archetypes, to: YGO.CardArchetypes end