lib/lti_1p3/tool.ex

defmodule Lti_1p3.Tool do
  import Lti_1p3.Config

  @doc """
  Creates a new deployment.
  ## Examples
      iex> create_deployment(deployment)
      {:ok, %Lti_1p3.Tool.Deployment{}}
      iex> create_deployment(deployment)
      {:error, %Lti_1p3.DataProviderError{}}
  """
  def create_deployment(%Lti_1p3.Tool.Deployment{} = deployment),
    do: provider!().create_deployment(deployment)

  @doc """
  Creates a new registration.
  ## Examples
      iex> create_registration(registration)
      {:ok, %Lti_1p3.Tool.Registration{}}
      iex> create_registration(registration)
      {:error, %Lti_1p3.DataProviderError{}}
  """
  def create_registration(%Lti_1p3.Tool.Registration{} = registration),
    do: provider!().create_registration(registration)

  @doc """
  Gets the registration with the given issuer and client_id.
  ## Examples
      iex> get_registration_by_issuer_client_id(issuer, client_id)
      %Registration{}
      iex> get_registration_by_issuer_client_id(issuer, client_id)
      nil
  """
  def get_registration_by_issuer_client_id(issuer, client_id),
    do: provider!().get_registration_by_issuer_client_id(issuer, client_id)

  @doc """
  Gets the registration and deployment associated with the given issuer, client_id and deployment_id.
  ## Examples
      iex> get_registration_deployment(issuer, client_id, deployment_id)
      {%Registration{}, %Deployment{}}
      iex> get_registration_deployment(issuer, client_id, deployment_id)
      {nil, nil}
  """
  def get_registration_deployment(issuer, client_id, deployment_id),
    do: provider!().get_registration_deployment(issuer, client_id, deployment_id)
end