Immich.API.Client.Behaviour behaviour (ex_immich v0.1.1)

Copy Markdown

Defines the expected interface for HTTP clients used by the Immich API modules.

Summary

Types

api_error()

@type api_error() ::
  {:authentication, term()}
  | {:authorization, term()}
  | {:transport, term()}
  | {:unexpected_response, non_neg_integer(), term()}

headers()

@type headers() :: [{String.t(), String.t()}]

Callbacks

get(t, headers)

@callback get(String.t(), headers()) :: {:ok, map() | term()} | {:error, api_error()}

ndjson_stream(t, map, headers)

@callback ndjson_stream(String.t(), map(), headers()) ::
  {:ok, Enumerable.t(map())} | {:error, api_error()}

post(t, map, headers)

@callback post(String.t(), map(), headers()) ::
  {:ok, map() | term()} | {:error, api_error()}