lib/models/resource_response.ex

defmodule ExMicrosoftBot.Models.ResourceResponse do
  @moduledoc """
  Microsoft bot conversation API resource response
  """

  @derive [Poison.Encoder]
  defstruct [:id]

  @type t :: %ExMicrosoftBot.Models.ResourceResponse{
          id: String.t()
        }

  @doc """
  Decode a map into `ExMicrosoftBot.Models.ResourceResponse`
  """
  @spec parse(map) :: {:ok, ExMicrosoftBot.Models.ResourceResponse.t()}
  def parse(param) when is_map(param) do
    {:ok, Poison.Decode.transform(param, %{as: decoding_map()})}
  end

  @doc """
  Decode a string into `ExMicrosoftBot.Models.ResourceResponse`
  """
  @spec parse(String.t()) :: ExMicrosoftBot.Models.ResourceResponse.t()
  def parse(param) when is_binary(param) do
    Poison.decode!(param, as: decoding_map())
  end

  @doc false
  def decoding_map() do
    %ExMicrosoftBot.Models.ResourceResponse{}
  end
end