lib/winticket_race_parser.ex

defmodule WinticketRaceParser do
  alias WinticketRaceParser.{
    FromResponse,
    ToRawMap,
    FromRawMap,
    Structs
  }

  def from_response(body) do
    FromResponse.parse(body)
  end

  def to_raw_map(%Structs.RaceContext{} = struct) do
    ToRawMap.convert(struct)
  end

  def from_raw_map(map) do
    FromRawMap.parse(map)
  end

  def build_url(%Structs.RaceContext{} = struct) do
    "https://www.winticket.jp/keirin/#{struct.venue.slug}/racecard/#{struct.cup.id}/#{struct.race.day_index}/#{struct.race.r}"
  end
end