Current section

Files

Jump to
teac lib teac api extensions chat.ex
Raw

lib/teac/api/extensions/chat.ex

defmodule Teac.Api.Extensions.Chat do
alias Teac.Api
@schema NimbleOptions.new!(
broadcaster_id: [type: :string, required: true],
text: [type: :string, required: true],
extension_id: [type: :string, required: true],
extension_version: [type: :string, required: true]
)
def post(%Teac.Client{} = client, opts \\ []) do
case NimbleOptions.validate(opts, @schema) do
{:ok, opts} ->
[
base_url: Api.uri("extensions/chat"),
headers: Api.headers(client),
params: [broadcaster_id: opts[:broadcaster_id]],
json: %{
text: opts[:text],
extension_id: opts[:extension_id],
extension_version: opts[:extension_version]
}
]
|> Keyword.merge(Application.get_env(:teac, :api_req_options, []))
|> Req.post!()
|> Api.handle_response()
{:error, %NimbleOptions.ValidationError{} = err} ->
{:error, err.message}
end
end
end