Current section

Files

Jump to
spawn_statestores lib statestores util.ex
Raw

lib/statestores/util.ex

defmodule Statestores.Util do
@otp_app :spawn_statestores
@spec load_app :: :ok | {:error, any}
def load_app do
Application.load(@otp_app)
end
@spec get_database_type() :: :cockroachdb | :mysql | :postgres | :sqlite | :mssql | :mongodb
def get_database_type() do
String.to_existing_atom(System.get_env("PROXY_DATABASE_TYPE", "mysql"))
end
@spec load_repo ::
Statestores.Adapters.MySQL
| Statestores.Adapters.Postgres
| Statestores.Adapters.SQLite3
| Statestores.Adapters.MSSQL
| Statestores.Adapters.MongoDB
def load_repo() do
type = String.to_existing_atom(System.get_env("PROXY_DATABASE_TYPE", "mysql"))
load_repo(type)
end
@spec load_repo(:cockroachdb | :mysql | :postgres | :sqlite | :mssql | :mongodb) ::
Statestores.Adapters.MySQL
| Statestores.Adapters.Postgres
| Statestores.Adapters.SQLite3
| Statestores.Adapters.MSSQL
| Statestores.Adapters.MongoDB
def load_repo(:cockroachdb), do: Statestores.Adapters.Postgres
def load_repo(:mysql), do: Statestores.Adapters.MySQL
def load_repo(:postgres), do: Statestores.Adapters.Postgres
def load_repo(:sqlite), do: Statestores.Adapters.SQLite3
def load_repo(:mssql), do: Statestores.Adapters.MSSQL
def load_repo(:mongodb), do: Statestores.Adapters.MongoDB
@spec get_default_database_port :: <<_::32>>
def get_default_database_port() do
String.to_existing_atom(System.get_env("PROXY_DATABASE_TYPE", "mysql"))
|> get_default_database_port()
end
@spec get_default_database_port(:mysql | :postgres) :: <<_::32>>
def get_default_database_port(:cockroachdb), do: "26257"
def get_default_database_port(:mysql), do: "3306"
def get_default_database_port(:postgres), do: "5432"
def get_default_database_port(:sqlite), do: "0"
def get_default_database_port(:mssql), do: "1433"
def get_default_database_port(:mongodb), do: "27017"
end