View Source Statestores.Adapters.ProjectionBehaviour behaviour (spawn_statestores v2.0.0-RC1)

Defines the default behavior for each Statestore Provider.

Summary

Types

metadata_key()

@type metadata_key() :: String.t()

metadata_value()

@type metadata_value() :: String.t()

page()

@type page() :: integer()

page_data()

@type page_data() :: Scrivener.Page.t()

page_size()

@type page_size() :: integer()

projection()

@type projection() :: Statestores.Schemas.Projection.t()

projection_id()

@type projection_id() :: String.t()

projection_name()

@type projection_name() :: String.t()

projections()

@type projections() :: [Statestores.Schemas.Projection.t()]

revision()

@type revision() :: integer()

time_end()

@type time_end() :: String.t()

time_start()

@type time_start() :: String.t()

Callbacks

create_table(projection_name)

@callback create_table(projection_name()) :: {:ok, String.t()}

default_port()

@callback default_port() :: <<_::32>>

get_all(projection_name, page, page_size)

@callback get_all(projection_name(), page(), page_size()) ::
  {:error, any()} | {:ok, page_data()}

get_all_by_projection_id(projection_name, projection_id, page, page_size)

@callback get_all_by_projection_id(
  projection_name(),
  projection_id(),
  page(),
  page_size()
) ::
  {:error, any()} | {:ok, page_data()}

get_by_interval(projection_name, time_start, time_end, page, page_size)

@callback get_by_interval(
  projection_name(),
  time_start(),
  time_end(),
  page(),
  page_size()
) :: {:error, any()} | {:ok, page_data()}

get_by_projection_id_and_interval( projection_name, projection_id, time_start, time_end, page, page_size )

@callback get_by_projection_id_and_interval(
  projection_name(),
  projection_id(),
  time_start(),
  time_end(),
  page(),
  page_size()
) :: {:error, any()} | {:ok, page_data()}

get_last(projection_name)

@callback get_last(projection_name()) :: {:error, any()} | {:ok, projection()}

get_last_by_projection_id(projection_name, projection_id)

@callback get_last_by_projection_id(projection_name(), projection_id()) ::
  {:error, any()} | {:ok, projection()}

save(projection)

@callback save(projection()) :: {:error, any()} | {:ok, projection()}

search_by_metadata(projection_name, metadata_key, metadata_value, page, page_size)

@callback search_by_metadata(
  projection_name(),
  metadata_key(),
  metadata_value(),
  page(),
  page_size()
) :: {:error, any()} | {:ok, page_data()}

search_by_projection_id_and_metadata( projection_name, projection_id, metadata_key, metadata_value, page, page_size )

@callback search_by_projection_id_and_metadata(
  projection_name(),
  projection_id(),
  metadata_key(),
  metadata_value(),
  page(),
  page_size()
) :: {:error, any()} | {:ok, page_data()}