Current section
Files
Jump to
Current section
Files
lib/connection/models/connection_state.ex
defmodule Ravix.Connection.State do
@moduledoc """
Represents the state of a RavenDB connection
- store: Store atom for this state. E.g: Ravix.TestStore
- database: Name of the database.
- certificate: RavenDB emmited SSL certificate for the database user in base64
- certificate_file: Same as above, but a path to the file in the disk
- conventions: Document Configuration conventions
- node_selector: Module that selects the nodes based on different strategies. E.g: Ravix.Connection.NodeSelector
- urls: List of the urls of RavenDB servers
- topology_etag: ETAG of the RavenDB cluster topology
- disable_topology_updates: If true, the topology will not be updated automatically when requested by the ravendb server
- force_create_database: If true, when the database does not exist, it will be created
- last_topology_update: DateTime when the topology was last updated
- cluster_token: Security Token for the members of the cluster
"""
defstruct store: nil,
database: nil,
certificate: nil,
certificate_file: nil,
conventions: %Ravix.Documents.Conventions{},
node_selector: nil,
urls: [],
topology_etag: nil,
disable_topology_updates: false,
force_create_database: false,
last_topology_update: nil,
cluster_token: nil
use Vex.Struct
@type t :: %Ravix.Connection.State{
store: any(),
database: String.t(),
certificate: String.t() | nil,
certificate_file: String.t() | nil,
conventions: Ravix.Documents.Conventions.t(),
node_selector: Ravix.Connection.NodeSelector.t(),
urls: list(String.t()),
topology_etag: String.t() | nil,
disable_topology_updates: boolean(),
force_create_database: boolean(),
last_topology_update: DateTime.t() | nil,
cluster_token: String.t() | nil
}
@spec validate_configs(Ravix.Connection.State.t()) ::
{:error, list} | {:ok, Ravix.Connection.State.t()}
def validate_configs(%Ravix.Connection.State{} = configs) do
case Vex.valid?(configs) do
true -> {:ok, configs}
false -> {:error, Vex.errors(configs)}
end
end
end