filters: Change to primary_key(user, filter_id)
This commit is contained in:
parent
117e005409
commit
b02385004c
|
@ -3,9 +3,10 @@ defmodule Pleroma.Filter do
|
||||||
import Ecto.{Changeset, Query}
|
import Ecto.{Changeset, Query}
|
||||||
alias Pleroma.{User, Repo, Activity}
|
alias Pleroma.{User, Repo, Activity}
|
||||||
|
|
||||||
|
@primary_key false
|
||||||
schema "filters" do
|
schema "filters" do
|
||||||
belongs_to(:user, Pleroma.User)
|
belongs_to(:user, Pleroma.User, primary_key: true)
|
||||||
field(:filter_id, :integer)
|
field(:filter_id, :id, primary_key: true)
|
||||||
field(:hide, :boolean, default: false)
|
field(:hide, :boolean, default: false)
|
||||||
field(:whole_word, :boolean, default: true)
|
field(:whole_word, :boolean, default: true)
|
||||||
field(:phrase, :string)
|
field(:phrase, :string)
|
||||||
|
@ -40,18 +41,10 @@ defmodule Pleroma.Filter do
|
||||||
Repo.insert(filter)
|
Repo.insert(filter)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(%Pleroma.Filter{id: filter_key} = filter) when is_number(filter_key) do
|
def delete(%Pleroma.Filter{} = filter) do
|
||||||
Repo.delete(filter)
|
Repo.delete(filter)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(%Pleroma.Filter{id: filter_key} = filter) when is_nil(filter_key) do
|
|
||||||
%Pleroma.Filter{id: id} = get(filter.filter_id, %{id: filter.user_id})
|
|
||||||
|
|
||||||
filter
|
|
||||||
|> Map.put(:id, id)
|
|
||||||
|> Repo.delete()
|
|
||||||
end
|
|
||||||
|
|
||||||
def update(%Pleroma.Filter{} = filter) do
|
def update(%Pleroma.Filter{} = filter) do
|
||||||
destination = Map.from_struct(filter)
|
destination = Map.from_struct(filter)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.FilterPrimaryKey do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
def change do
|
||||||
|
# FIXME: Avoid dropping the table
|
||||||
|
drop table(:filters)
|
||||||
|
|
||||||
|
create table(:filters, primary_key: false) do
|
||||||
|
add :user_id, references(:users, on_delete: :delete_all), primary_key: true
|
||||||
|
add :filter_id, :id, primary_key: true
|
||||||
|
add :hide, :boolean
|
||||||
|
add :phrase, :string
|
||||||
|
add :context, {:array, :string}
|
||||||
|
add :expires_at, :datetime
|
||||||
|
add :whole_word, :boolean
|
||||||
|
|
||||||
|
timestamps()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue