Skip to content

Commit

Permalink
setter renamed to originator
Browse files Browse the repository at this point in the history
  • Loading branch information
izelnakri committed Mar 14, 2017
1 parent 8e424cf commit 0129c68
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 64 deletions.
10 changes: 5 additions & 5 deletions lib/mix/tasks/papertrail/install.ex
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ defmodule Mix.Tasks.Papertrail.Install do
add :item_type, :string, null: false
add :item_id, :integer
add :item_changes, :map, null: false
add :setter_id, references(:users) # you can change :users to your own foreign key constraint
#{set_by_field()}
add :originator_id, references(:users) # you can change :users to your own foreign key constraint
#{origin_by_field()}
add :meta, :map
add :inserted_at, :utc_datetime, null: false
Expand All @@ -39,10 +39,10 @@ defmodule Mix.Tasks.Papertrail.Install do
"""
end

defp set_by_field do
defp origin_by_field do
case @strict_mode do
true -> "add :set_by, :string, size: 50, null: false, default: \"unknown\""
_ -> "add :set_by, :string, size: 50"
true -> "add :origin, :string, size: 50, null: false, default: \"unknown\""
_ -> "add :origin, :string, size: 50"
end
end

Expand Down
18 changes: 9 additions & 9 deletions lib/paper_trail.ex
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ defmodule PaperTrail do
@doc """
Inserts a record to the database with a related version insertion in one transaction
"""
def insert(changeset, options \\ [set_by: nil, meta: nil, setter_id: nil]) do
def insert(changeset, options \\ [origin: nil, meta: nil, originator_id: nil]) do
case @client.strict_mode() do
true ->
transaction = Multi.new
Expand Down Expand Up @@ -98,7 +98,7 @@ defmodule PaperTrail do
@doc """
Updates a record from the database with a related version insertion in one transaction
"""
def update(changeset, options \\ [set_by: nil, meta: nil, setter_id: nil]) do
def update(changeset, options \\ [origin: nil, meta: nil, originator_id: nil]) do
case @client.strict_mode() do
true ->
transaction = Multi.new
Expand Down Expand Up @@ -145,7 +145,7 @@ defmodule PaperTrail do
@doc """
Deletes a record from the database with a related version insertion in one transaction
"""
def delete(struct, options \\ [set_by: nil, meta: nil, setter_id: nil]) do
def delete(struct, options \\ [origin: nil, meta: nil, originator_id: nil]) do
transaction = Multi.new
|> Multi.delete(:model, struct)
|> Multi.run(:version, fn %{} ->
Expand All @@ -167,8 +167,8 @@ defmodule PaperTrail do
item_type: model.__struct__ |> Module.split |> List.last,
item_id: model.id,
item_changes: serialize(model),
setter_id: options[:setter_id],
set_by: options[:set_by],
originator_id: options[:originator_id],
origin: options[:origin],
meta: options[:meta]
}
end
Expand All @@ -178,8 +178,8 @@ defmodule PaperTrail do
item_type: changeset.data.__struct__ |> Module.split |> List.last,
item_id: changeset.data.id,
item_changes: changeset.changes,
setter_id: options[:setter_id],
set_by: options[:set_by],
originator_id: options[:originator_id],
origin: options[:origin],
meta: options[:meta]
}
end
Expand All @@ -189,8 +189,8 @@ defmodule PaperTrail do
item_type: model.__struct__ |> Module.split |> List.last,
item_id: model.id,
item_changes: serialize(model),
setter_id: options[:setter_id],
set_by: options[:set_by],
originator_id: options[:originator_id],
origin: options[:origin],
meta: options[:meta]
}
end
Expand Down
2 changes: 1 addition & 1 deletion lib/paper_trail/repo_client.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ defmodule PaperTrail.RepoClient do
Gets the configured repo module or defaults to Repo if none configured
"""
def repo, do: Application.get_env(:paper_trail, :repo) || Repo
def setter, do: Application.get_env(:paper_trail, :setter) || nil
def originator, do: Application.get_env(:paper_trail, :originator) || nil
def strict_mode, do: Application.get_env(:paper_trail, :strict_mode) || false
end
8 changes: 4 additions & 4 deletions lib/version.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ defmodule PaperTrail.Version do
import Ecto.Changeset
import Ecto.Query

@setter PaperTrail.RepoClient.setter
@setter PaperTrail.RepoClient.originator || nil

schema "versions" do
field :event, :string
field :item_type, :string
field :item_id, :integer
field :item_changes, :map
field :setter_id, :integer
field :set_by, :string
field :originator_id, :integer
field :origin, :string, read_after_writes: true
field :meta, :map

if @setter do
Expand All @@ -24,7 +24,7 @@ defmodule PaperTrail.Version do

def changeset(model, params \\ :empty) do
model
|> cast(params, [:item_type, :item_id, :item_changes, :set_by, :setter_id, :meta])
|> cast(params, [:item_type, :item_id, :item_changes, :origin, :originator_id, :meta])
|> validate_required([:event, :item_type, :item_id, :item_changes])
end

Expand Down
6 changes: 3 additions & 3 deletions priv/repo/migrations/20160619190936_add_versions.exs
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ defmodule Repo.Migrations.AddVersions do
add :item_type, :string, null: false
add :item_id, :integer, null: false
add :item_changes, :map, null: false
add :setter_id, references(:users) # you can change users to your own foreign key constraint
add :set_by, :string, size: 50, read_after_writes: true
add :originator_id, references(:users) # you can change users to your own foreign key constraint
add :origin, :string, size: 50
add :meta, :map

add :inserted_at, :utc_datetime, null: false
end

create index(:versions, [:setter_id])
create index(:versions, [:originator_id])
create index(:versions, [:item_type, :item_id])
create index(:versions, [:item_type, :inserted_at])
# create index(:versions, [:event, :item_type])
Expand Down
42 changes: 21 additions & 21 deletions test/paper_trail_strict_mode_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ defmodule PaperTrailStrictModeTest do

test "creating a company creates a company version with correct attributes" do
user = create_user()
{:ok, result} = create_company_with_version(@create_company_params, setter_id: user.id)
{:ok, result} = create_company_with_version(@create_company_params, originator_id: user.id)

company_count = Company.count()
version_count = Version.count()
Expand Down Expand Up @@ -60,8 +60,8 @@ defmodule PaperTrailStrictModeTest do
item_type: "StrictCompany",
item_id: company.id,
item_changes: company,
setter_id: user.id,
set_by: nil,
originator_id: user.id,
origin: nil,
meta: nil
}
assert company == first(Company, :id) |> @repo.one |> serialize
Expand All @@ -78,7 +78,7 @@ defmodule PaperTrailStrictModeTest do
user = create_user()
{:ok, insert_company_result} = create_company_with_version()
{:ok, result} = update_company_with_version(
insert_company_result[:model], @update_company_params, setter_id: user.id
insert_company_result[:model], @update_company_params, originator_id: user.id
)

company_count = Company.count()
Expand Down Expand Up @@ -112,8 +112,8 @@ defmodule PaperTrailStrictModeTest do
facebook: "acme.llc",
current_version_id: version.id
},
setter_id: user.id,
set_by: nil,
originator_id: user.id,
origin: nil,
meta: nil
}
assert company == first(Company, :id) |> @repo.one |> serialize
Expand All @@ -137,7 +137,7 @@ defmodule PaperTrailStrictModeTest do
{:ok, insert_company_result} = create_company_with_version()
{:ok, update_company_result} = update_company_with_version(insert_company_result[:model])
company_before_deletion = first(Company, :id) |> @repo.one |> serialize
{:ok, result} = PaperTrail.delete(update_company_result[:model], setter_id: user.id)
{:ok, result} = PaperTrail.delete(update_company_result[:model], originator_id: user.id)

company_count = Company.count()
version_count = Version.count()
Expand Down Expand Up @@ -179,8 +179,8 @@ defmodule PaperTrailStrictModeTest do
first_version_id: insert_company_result[:version].id,
current_version_id: update_company_result[:version].id
},
setter_id: user.id,
set_by: nil,
originator_id: user.id,
origin: nil,
meta: nil
}
assert old_company == company_before_deletion
Expand Down Expand Up @@ -212,7 +212,7 @@ defmodule PaperTrailStrictModeTest do
last_name: "Nakri",
gender: true,
company_id: insert_company_result[:model].id
}) |> PaperTrail.insert(set_by: "admin", meta: %{linkname: "izelnakri"})
}) |> PaperTrail.insert(origin: "admin", meta: %{linkname: "izelnakri"})

person_count = Person.count()
version_count = Version.count()
Expand All @@ -238,8 +238,8 @@ defmodule PaperTrailStrictModeTest do
item_type: "StrictPerson",
item_id: person.id,
item_changes: person,
setter_id: nil,
set_by: "admin",
originator_id: nil,
origin: "admin",
meta: %{linkname: "izelnakri"}
}
assert person == first(Person, :id) |> @repo.one |> serialize
Expand All @@ -257,13 +257,13 @@ defmodule PaperTrailStrictModeTest do
last_name: "Nakri",
gender: true,
company_id: target_company_insertion[:model].id
}) |> PaperTrail.insert(set_by: "admin")
}) |> PaperTrail.insert(origin: "admin")
{:ok, result} = Person.changeset(insert_person_result[:model], %{
first_name: "Isaac",
visit_count: 10,
birthdate: ~D[1992-04-01],
company_id: insert_company_result[:model].id
}) |> PaperTrail.update(set_by: "scraper", meta: %{linkname: "izelnakri"})
}) |> PaperTrail.update(origin: "scraper", meta: %{linkname: "izelnakri"})

person_count = Person.count()
version_count = Version.count()
Expand Down Expand Up @@ -295,8 +295,8 @@ defmodule PaperTrailStrictModeTest do
current_version_id: version.id,
company_id: insert_company_result[:model].id
},
setter_id: nil,
set_by: "scraper",
originator_id: nil,
origin: "scraper",
meta: %{linkname: "izelnakri"}
}
assert person == first(Person, :id) |> @repo.one |> serialize
Expand All @@ -312,15 +312,15 @@ defmodule PaperTrailStrictModeTest do
last_name: "Nakri",
gender: true,
company_id: target_company_insertion[:model].id
}) |> PaperTrail.insert(set_by: "admin")
}) |> PaperTrail.insert(origin: "admin")
{:ok, update_person_result} = Person.changeset(insert_person_result[:model], %{
first_name: "Isaac",
visit_count: 10,
birthdate: ~D[1992-04-01]
}) |> PaperTrail.update(set_by: "scraper", meta: %{linkname: "izelnakri"})
}) |> PaperTrail.update(origin: "scraper", meta: %{linkname: "izelnakri"})
person_before_deletion = first(Person, :id) |> @repo.one |> serialize
{:ok, result} = PaperTrail.delete(
update_person_result[:model], set_by: "admin", meta: %{linkname: "izelnakri"}
update_person_result[:model], origin: "admin", meta: %{linkname: "izelnakri"}
)

person_count = Person.count()
Expand Down Expand Up @@ -349,8 +349,8 @@ defmodule PaperTrailStrictModeTest do
first_version_id: insert_person_result[:version].id,
current_version_id: update_person_result[:version].id
},
setter_id: nil,
set_by: "admin",
originator_id: nil,
origin: "admin",
meta: %{linkname: "izelnakri"}
}
assert old_person == person_before_deletion
Expand Down
Loading

0 comments on commit 0129c68

Please sign in to comment.