Current section

Files

Jump to
afterbuy lib param.ex
Raw

lib/param.ex

defmodule Afterbuy.Param do
@moduledoc """
Afterbuy request parameter abstraction
iex> Afterbuy.Param.new(:max_shop_items, 250)
%Afterbuy.Param{name: "MaxShopItems", value: 250}
"""
@type t() :: %__MODULE__{}
@derive {Afterbuy.XML.Encoder, name: {:attr, "name"}, children: [:value]}
@enforce_keys [:name, :value]
defstruct [:name, :value]
@doc """
Returns parameter structure to be serialized
"""
@spec new(String.t(), String.t() | Tuple.t()) :: __MODULE__.t()
def new(name, value) do
struct(__MODULE__, %{name: Inflex.camelize(name), value: value})
end
end