defmodule ExMicrosoftBot.Models.ConversationResourceResponse do
@moduledoc """
Microsoft bot conversation API response when creating a conversation.
https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-4.0#conversationresourceresponse-object
"""
@derive [Poison.Encoder]
defstruct [:id, :activityId, :serviceUrl]
@type t :: %__MODULE__{
id: String.t(),
activityId: String.t() | nil,
serviceUrl: String.t()
}
@spec parse(String.t() | Map.t()) :: __MODULE__.t() | {:ok, __MODULE__.t()}
def parse(param) when is_map(param) do
{:ok, Poison.Decode.transform(param, %{as: decoding_map()})}
end
def parse(param) do
Poison.decode!(param, as: decoding_map())
end
@doc false
def decoding_map() do
%__MODULE__{}
end
end