Packages

Elixir HTTP client for the X API v2.

Current section

Files

Jump to
x_api_ex lib x_api_ex model media.ex
Raw

lib/x_api_ex/model/media.ex

defmodule XApiEx.Model.Media do
@moduledoc """
A media object attached to a post.
"""
@derive JSON.Encoder
defstruct [
:duration_ms,
:height,
:media_key,
:preview_image_url,
:public_metrics,
:type,
:url,
:width
]
@type t :: %__MODULE__{
:duration_ms => number() | nil,
:height => number() | nil,
:media_key => String.t() | nil,
:preview_image_url => String.t() | nil,
:public_metrics => XApiEx.Model.Media.PublicMetrics.t() | nil,
:type => String.t() | nil,
:url => String.t() | nil,
:width => number() | nil
}
alias XApiEx.Deserializer
@doc "Deserializes nested structs within the given map into their respective model types."
@spec decode(map()) :: t()
def decode(value) do
value
|> Deserializer.deserialize(:public_metrics, :struct, XApiEx.Model.Media.PublicMetrics)
end
end