Packages

An Elixir client for the Polymarket API.

Current section

Files

Jump to
ex_polymarket lib schemas event_message.ex
Raw

lib/schemas/event_message.ex

defmodule Polymarket.Schemas.EventMessage do
@moduledoc """
Event message describing the parent event of a market. Part of a NewMarketEvent.
"""
use TypedEctoSchema
alias Polymarket.JsonUtil
@primary_key false
@derive Jason.Encoder
typed_embedded_schema do
field(:id, :string)
field(:description, :string)
field(:title, :string)
field(:ticker, :string)
field(:slug, :string)
end
@doc "Builds an `EventMessage` from a decoded (JSON) map, coercing each field."
@spec from_attrs(map()) :: {:ok, t()}
def from_attrs(attrs) do
attrs = JsonUtil.snake_case_keys(attrs)
{:ok,
%__MODULE__{
id: attrs["id"],
description: attrs["description"],
title: attrs["title"],
ticker: attrs["ticker"],
slug: attrs["slug"]
}}
end
end