Skip to content

Commit

Permalink
[bug] Delete job (#69)
Browse files Browse the repository at this point in the history
* change items and logs delete options

* add more data to test case
  • Loading branch information
qnVictoria committed Feb 12, 2021
1 parent 99cb749 commit 491ef34
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 3 deletions.
2 changes: 1 addition & 1 deletion lib/crawly_ui/manager/item.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule CrawlyUI.Manager.Item do

schema "items" do
field :data, :map
field :job_id, :id
belongs_to :job, CrawlyUI.Manager.Job

timestamps()
end
Expand Down
4 changes: 4 additions & 0 deletions lib/crawly_ui/manager/job.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ defmodule CrawlyUI.Manager.Job do
field :items_count, :integer, default: 0
field :crawl_speed, :integer, default: 0
field :run_time, :integer, default: 0

has_many :items, CrawlyUI.Manager.Item, on_delete: :delete_all
has_many :logs, CrawlyUI.Manager.Log, on_delete: :delete_all

timestamps()
end

Expand Down
3 changes: 2 additions & 1 deletion lib/crawly_ui/manager/log.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ defmodule CrawlyUI.Manager.Log do

schema "logs" do
field :message, :string
field :job_id, :id
field :mod, :string
field :category, Ecto.Enum, values: [:manager, :worker, :requests, :items, :other]

belongs_to :job, CrawlyUI.Manager.Job

timestamps()
end

Expand Down
1 change: 0 additions & 1 deletion lib/crawly_ui_web/live/job_live.ex
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ defmodule CrawlyUIWeb.JobLive do
def handle_event("delete", %{"job" => job_id}, socket) do
job = job_id |> String.to_integer() |> Manager.get_job!()

job |> Manager.delete_all_job_items()
{:ok, _} = job |> Manager.delete_job()

socket = update_socket(socket)
Expand Down
10 changes: 10 additions & 0 deletions priv/repo/migrations/20210211143950_change_item_delete_option.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
defmodule CrawlyUI.Repo.Migrations.ChangeItemsDeleteOption do
use Ecto.Migration

def change do
alter table(:items) do
modify :job_id, references(:jobs, on_delete: :nothing),
from: references(:jobs, on_delete: :delete_all)
end
end
end
10 changes: 10 additions & 0 deletions priv/repo/migrations/20210211152013_change_logs_delete_option.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
defmodule CrawlyUI.Repo.Migrations.ChangeLogsDeleteOption do
use Ecto.Migration

def change do
alter table(:logs) do
modify :job_id, references(:jobs, on_delete: :nothing),
from: references(:jobs, on_delete: :delete_all)
end
end
end
2 changes: 2 additions & 0 deletions test/crawly_ui_web/live/job_live_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,8 @@ defmodule CrawlyUIWeb.JobLiveTest do
insert_item(job_2.id, inserted_at(50))
insert_item(job_2.id, inserted_at(10))

insert_log(job_2.id)

{:ok, view, _html} = live(conn, "/all")

assert render(view) =~
Expand Down
8 changes: 8 additions & 0 deletions test/support/data_case.ex
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,14 @@ defmodule CrawlyUI.DataCase do
})
end

def insert_log(job_id) do
CrawlyUI.Repo.insert!(%CrawlyUI.Manager.Log{
job_id: job_id,
mod: "undefined",
message: "Dropping request: \"\" (domain filter)"
})
end

def inserted_at_valid(), do: inserted_at(0)

@job_abandoned_timeout 60 * 30 + 10
Expand Down

0 comments on commit 491ef34

Please sign in to comment.