Current section
Files
Jump to
Current section
Files
lib/teac/api/content_classification_labels.ex
defmodule Teac.Api.ContentClassificationLabels do
alias Teac.Api
import Ecto.Changeset
@locales [
"en-US",
"bg-BG",
"cs-CZ",
"da-DK",
"da-DK",
"de-DE",
"el-GR",
"en-GB",
"en-US",
"es-ES",
"es-MX",
"fi-FI",
"fr-FR",
"hu-HU",
"it-IT",
"ja-JP",
"ko-KR",
"nl-NL",
"no-NO",
"pl-PL",
"pt-BT",
"pt-PT",
"ro-RO",
"ru-RU",
"sk-SK",
"sv-SE",
"th-TH",
"tr-TR",
"vi-VN",
"zh-CN",
"zh-TW"
###########
]
def get(opts) do
case validate_get_opts(opts) do
{:ok, %{token: token, client_id: client_id} = cs} ->
params =
if Map.get(cs, :locale, nil) do
[{:locale, Map.get(cs, :locale, nil)}]
else
[]
end
[
base_url: Api.uri("content_classification_labels"),
params: params,
headers: Api.headers(token, client_id)
]
|> Keyword.merge(Application.get_env(:teac, :api_req_options, []))
|> Req.get!()
|> Api.handle_response()
error ->
error
end
end
defp validate_get_opts(opt) do
data = %{}
types = %{
token: :string,
client_id: :string,
locale: :string
}
changeset =
{data, types}
|> cast(opt |> Map.new(), Map.keys(types))
|> Api.default_client_id()
|> validate_required([:token, :client_id])
|> validate_inclusion(:locale, @locales)
case apply_action(changeset, :insert) do
{:ok, data} -> {:ok, data}
{:error, %Ecto.Changeset{errors: errors}} -> {:error, errors}
end
end
end