TerminusDB.Prefix (terminusdb_ex v0.3.3)

Copy Markdown View Source

Prefix management API for TerminusDB.

Wraps the /api/prefix/{path} and /api/prefixes/{path} endpoints for managing custom prefix mappings in a database.

All functions require a TerminusDB.Config scoped to a database.

Quick start

config =
  TerminusDB.Config.new(endpoint: "http://localhost:6363")
  |> TerminusDB.Config.with_database("mydb")

{:ok, uri} = TerminusDB.Prefix.get(config, "ex")
{:ok, _} = TerminusDB.Prefix.add(config, "ex", "http://example.org/")
{:ok, _} = TerminusDB.Prefix.update(config, "ex", "http://example.com/")
{:ok, _} = TerminusDB.Prefix.delete(config, "ex")

Summary

Functions

Adds a new prefix mapping.

Adds a new prefix mapping, or raises.

Gets all prefix mappings for the database.

Gets all prefix mappings, or raises.

Deletes a prefix mapping.

Deletes a prefix mapping, or raises.

Gets a single prefix IRI by name.

Gets a single prefix IRI by name, or raises.

Updates an existing prefix mapping.

Updates an existing prefix mapping, or raises.

Creates or updates a prefix mapping (upsert).

Creates or updates a prefix mapping (upsert), or raises.

Types

prefix_opt()

@type prefix_opt() :: {:organization, String.t()} | {:repo, String.t()}

Functions

add(config, prefix_name, uri, opts \\ [])

@spec add(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) ::
  {:ok, map()} | {:error, TerminusDB.Error.t()}

Adds a new prefix mapping.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, resp} = TerminusDB.Prefix.add(config, "ex", "http://example.org/")
iex> resp["api:status"]
"api:success"

add!(config, prefix_name, uri, opts \\ [])

@spec add!(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) :: map()

Adds a new prefix mapping, or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.add!(config, "ex", "http://example.org/")
%{"api:status" => "api:success"}

all(config, opts \\ [])

@spec all(TerminusDB.Config.t(), [prefix_opt()]) ::
  {:ok, map()} | {:error, TerminusDB.Error.t()}

Gets all prefix mappings for the database.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"@base" => "terminusdb:///data/", "@schema" => "terminusdb:///schema#"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, prefixes} = TerminusDB.Prefix.all(config)
iex> prefixes["@schema"]
"terminusdb:///schema#"

all!(config, opts \\ [])

@spec all!(TerminusDB.Config.t(), [prefix_opt()]) :: map()

Gets all prefix mappings, or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"@base" => "terminusdb:///data/", "@schema" => "terminusdb:///schema#"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.all!(config)["@schema"]
"terminusdb:///schema#"

delete(config, prefix_name, opts \\ [])

@spec delete(TerminusDB.Config.t(), String.t(), [prefix_opt()]) ::
  {:ok, map()} | {:error, TerminusDB.Error.t()}

Deletes a prefix mapping.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, resp} = TerminusDB.Prefix.delete(config, "ex")
iex> resp["api:status"]
"api:success"

delete!(config, prefix_name, opts \\ [])

@spec delete!(TerminusDB.Config.t(), String.t(), [prefix_opt()]) :: map()

Deletes a prefix mapping, or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.delete!(config, "ex")
%{"api:status" => "api:success"}

get(config, prefix_name, opts \\ [])

@spec get(TerminusDB.Config.t(), String.t(), [prefix_opt()]) ::
  {:ok, String.t()} | {:error, TerminusDB.Error.t()}

Gets a single prefix IRI by name.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:prefix_uri" => "http://example.org/"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, uri} = TerminusDB.Prefix.get(config, "ex")
iex> uri
"http://example.org/"

get!(config, prefix_name, opts \\ [])

@spec get!(TerminusDB.Config.t(), String.t(), [prefix_opt()]) :: String.t()

Gets a single prefix IRI by name, or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:prefix_uri" => "http://example.org/"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.get!(config, "ex")
"http://example.org/"

update(config, prefix_name, uri, opts \\ [])

@spec update(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) ::
  {:ok, map()} | {:error, TerminusDB.Error.t()}

Updates an existing prefix mapping.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, resp} = TerminusDB.Prefix.update(config, "ex", "http://example.com/")
iex> resp["api:status"]
"api:success"

update!(config, prefix_name, uri, opts \\ [])

@spec update!(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) :: map()

Updates an existing prefix mapping, or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.update!(config, "ex", "http://example.com/")
%{"api:status" => "api:success"}

upsert(config, prefix_name, uri, opts \\ [])

@spec upsert(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) ::
  {:ok, map()} | {:error, TerminusDB.Error.t()}

Creates or updates a prefix mapping (upsert).

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> {:ok, resp} = TerminusDB.Prefix.upsert(config, "ex", "http://example.org/")
iex> resp["api:status"]
"api:success"

upsert!(config, prefix_name, uri, opts \\ [])

@spec upsert!(TerminusDB.Config.t(), String.t(), String.t(), [prefix_opt()]) :: map()

Creates or updates a prefix mapping (upsert), or raises.

Examples

iex> config = TerminusDB.Config.new(
...>   endpoint: "http://localhost:6363",
...>   adapter: fn req -> {req, Req.Response.new(status: 200, body: %{"api:status" => "api:success"})} end
...> ) |> TerminusDB.Config.with_database("mydb")
iex> TerminusDB.Prefix.upsert!(config, "ex", "http://example.org/")
%{"api:status" => "api:success"}