lib/tai/venue_adapters/bitmex/stream/settlements.ex

defmodule Tai.VenueAdapters.Bitmex.Stream.Settlements do
  def broadcast(
        %{
          "settledPrice" => price,
          "symbol" => venue_symbol,
          "timestamp" => timestamp
        },
        venue_id,
        received_at
      ) do
    TaiEvents.info(%Tai.Events.Settlement{
      venue_id: venue_id,
      # TODO: The list of products or a map of exchange symbol to symbol should be passed in
      symbol: venue_symbol |> normalize_symbol,
      timestamp: timestamp,
      received_at: received_at,
      price: price
    })
  end

  defp normalize_symbol(venue_symbol) do
    venue_symbol
    |> String.downcase()
    |> String.to_atom()
  end
end