Current section
Files
Jump to
Current section
Files
lib/nascar.ex
defmodule SportsRadar.Nascar do @moduledoc """ A wrapper around the Sports Radar NASCAR API. http://developer.sportradar.com/io-docs Note: This is for the "NASCAR Official API" The 2017 season uses 'mc' versus 'sc' for the Monster Energy rebranding. The 2016 and prior seasons use 'sc' for the Sprint Cup naming. """ @doc """ drivers ## Examples iex> {:ok, res} = SportsRadar.Nascar.drivers("mc", "2017") """ def drivers(series, year) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/" <> year <> "/drivers/list.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ drivers_statistics ## Examples iex> {:ok, res} = SportsRadar.Nascar.drivers_stats("mc", "2017") """ def drivers_statistics(series, year), do: drivers_stats(series, year) def drivers_stats(series, year) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/drivers" <> year <> "/drivers.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ daily_change_log: Meta response to see what changes in the API data ## Examples iex> {:ok, res} = SportsRadar.Nascar.daily_change_log("2017", "02", "1") """ def daily_change_log(year, month, day) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> year <> "/" <> month <> "/" <> day <> "/changes.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ tracks ## Examples iex> {:ok, res} = SportsRadar.Nascar.tracks() """ def tracks() do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/tracks/list.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ entry_list ## Examples iex> {:ok, res} = SportsRadar.Nascar.entry_list("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") """ def entry_list(series, race_id) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/races/" <> race_id <> "/entry_list.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ practice_leaderboard ## Examples iex> {:ok, res} = SportsRadar.Nascar.practice_leaderboard("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") """ def practice_leaderboard(series, race_id) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/races/" <> race_id <> "/practices.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ qualifying_leaderboard ## Examples iex> {:ok, res} = SportsRadar.Nascar.qualifying_leaderboard("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") """ def qualifying_leaderboard(series, race_id) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/races/" <> race_id <> "/qualifying.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ starting_grid ## Examples iex> {:ok, res} = SportsRadar.Nascar.starting_grid("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") """ def starting_grid(series, race_id) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/races/" <> race_id <> "/starting_grid.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ race_leaderboard Individual race leaderboard. Has finishing order and points. ## Examples iex(2)> {:ok, res} = SportsRadar.Nascar.results("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") iex(2)> {:ok, res} = SportsRadar.Nascar.race_leaderboard("sc", "87f618bf-2ee5-4e6e-b558-7bbc0337e5c7") """ def race_leaderboard(series, race_id), do: results(series, race_id) def results(series, race_id) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/races/" <> race_id <> "/results.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ Standings for drivers, rookies, owners, and manufacturers. ## Examples iex(1)> {:ok, res} = SportsRadar.Nascar.standings("mc", "2017", "drivers") iex(1)> {:ok, res} = SportsRadar.Nascar.drivers_standings("mc", "2017") iex(1)> {:ok, res} = SportsRadar.Nascar.rookies_standings("mc", "2017") iex(1)> {:ok, res} = SportsRadar.Nascar.owners_standings("mc", "2017") iex(1)> {:ok, res} = SportsRadar.Nascar.manufacturers_standings("mc", "2017") """ def driver_standings(series, year), do: standings(series, year, "drivers") def rookies_standings(series, year), do: standings(series, year, "rookies") def owners_standings(series, year), do: standings(series, year, "owners") def manufacturers_standings(series, year), do: standings(series, year, "manufacturers") def standings(series, year, type) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-ot3/" <> series <> "/" <> year <> "/standings/" <> type <> ".json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end end @doc """ Yearly series schedules. ## Examples iex(2)> {:ok, res} = SportsRadar.Nascar.schedule("mc", "2017") """ def schedule(series, year) do key = Application.get_env(:sports_radar, :api_key) url = "http://api.sportradar.us/nascar-t3/" <> series <> "/" <> year <> "/races/schedule.json?api_key=" <> key case SportsRadar.Request.get(url) do {:ok, response} -> SportsRadar.Request.handle_response(response) {:error, reason} -> {:error, reason} end endend