Anvil.API.State (Anvil v0.1.1)

View Source

Repo-backed persistence for the /v1 IR API.

Uses dedicated tables to store the LabelingIR structs while enforcing tenant scoping.

Summary

Functions

get_dataset(id, tenant_id \\ nil)

@spec get_dataset(String.t(), String.t() | nil) ::
  {:ok, LabelingIR.Dataset.t()} | :error

get_dataset_slice(id, slice_name, tenant_id \\ nil)

@spec get_dataset_slice(String.t(), String.t(), String.t() | nil) ::
  {:ok, map()} | :error

get_queue(id, tenant_id \\ nil)

@spec get_queue(String.t(), String.t() | nil) :: {:ok, map()} | :error

get_sample(id, tenant_id \\ nil)

@spec get_sample(String.t(), String.t() | nil) ::
  {:ok, LabelingIR.Sample.t()} | :error

get_schema(id, tenant_id \\ nil)

@spec get_schema(String.t(), String.t() | nil) ::
  {:ok, LabelingIR.Schema.t()} | :error

next_assignment(queue_id, tenant_id, user_id)

@spec next_assignment(String.t(), String.t(), String.t()) ::
  {:ok, LabelingIR.Assignment.t()} | {:error, :not_found | :no_samples}

put_assignment(assignment)

@spec put_assignment(LabelingIR.Assignment.t()) :: :ok | {:error, term()}

put_dataset(dataset)

@spec put_dataset(LabelingIR.Dataset.t()) :: :ok | {:error, term()}

put_label(label)

@spec put_label(LabelingIR.Label.t()) ::
  {:ok, LabelingIR.Label.t()} | {:error, term()}

put_queue(queue)

@spec put_queue(map()) :: :ok | {:error, term()}

put_sample(sample)

@spec put_sample(LabelingIR.Sample.t()) :: :ok | {:error, term()}

put_schema(schema)

@spec put_schema(LabelingIR.Schema.t()) :: :ok | {:error, term()}

queue_stats(queue_id, tenant_id)

@spec queue_stats(String.t(), String.t()) :: map() | :error

reset!()

@spec reset!() :: :ok