Packages
spawn_statestores_mssql
0.5.3
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc4
1.0.0-rc3
1.0.0-rc2
1.0.0-rc16
1.0.0-rc15
1.0.0-rc13
1.0.0-rc1
1.0.0-rc.38
1.0.0-rc.37
1.0.0-rc.36
1.0.0-rc.35
1.0.0-rc.34
1.0.0-rc.33
1.0.0-rc.32
1.0.0-rc.31
1.0.0-rc.30
1.0.0-rc.29
1.0.0-rc.28
1.0.0-rc.27
1.0.0-rc.26
1.0.0-rc.25
1.0.0-rc.24
1.0.0-rc.23
1.0.0-rc.22
1.0.0-rc.21
1.0.0-rc.20
1.0.0-rc.19
1.0.0-rc.18
1.0.0-rc.17
1.0.0-beta1
0.6.3
0.6.2
0.6.1
0.6.0
0.5.5
0.5.4
0.5.3
0.5.1
0.5.0
0.5.0-rc.13
0.5.0-rc.12
0.5.0-rc.11
0.5.0-rc.10
0.5.0-rc.9
0.5.0-rc.8
0.5.0-rc.7
0.5.0-rc.6
0.5.0-rc.5
0.5.0-rc.3
0.5.0-alpha.13
0.5.0-alpha.12
0.5.0-alpha.11
0.5.0-alpha.10
0.5.0-alpha.9
0.5.0-alpha.6
0.5.0-alpha.5
0.5.0-alpha.4
0.5.0-alpha.3
0.5.0-alpha.2
0.5.0-alpha.1
Spawn Statestores Mssql is a storage lib for the Spawn Actors System
Current section
Files
Jump to
Current section
Files
lib/statestores/adapters/mssql.ex
defmodule Statestores.Adapters.MSSQL do
@moduledoc """
Implements the behavior defined in `Statestores.Adapters.Behaviour` for MSSQL databases.
"""
use Statestores.Adapters.Behaviour
use Ecto.Repo,
otp_app: :spawn_statestores,
adapter: Ecto.Adapters.Tds
alias Statestores.Schemas.{Event, ValueObjectSchema}
def get_by_key(actor), do: get_by(Event, actor: actor)
def save(%Event{actor: actor} = event) do
%Event{}
|> Event.changeset(ValueObjectSchema.to_map(event))
|> insert()
|> case do
{:ok, event} ->
{:ok, event}
{:error, changeset} ->
{:error, changeset}
other ->
{:error, other}
end
rescue
_e ->
get_by(Event, actor: actor)
|> Event.changeset(ValueObjectSchema.to_map(event))
|> update!()
|> case do
{:ok, event} ->
{:ok, event}
{:error, changeset} ->
{:error, changeset}
other ->
{:error, other}
end
end
def default_port, do: "1433"
end