From 177067ab0063b8572394798947802d74c9e75e74 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Sun, 9 Aug 2020 20:40:15 -0700 Subject: [PATCH] Misc cleanup to tasks (#37) --- lib/planner/tasks.ex | 43 +++++++----------------- lib/planner/tasks/task.ex | 7 ++-- lib/planner_web/live/tasks_components.ex | 12 ------- lib/planner_web/live/tasks_live.ex | 4 +-- lib/planner_web/router.ex | 4 +-- 5 files changed, 20 insertions(+), 50 deletions(-) diff --git a/lib/planner/tasks.ex b/lib/planner/tasks.ex index 481a2f9..7088335 100644 --- a/lib/planner/tasks.ex +++ b/lib/planner/tasks.ex @@ -4,16 +4,6 @@ defmodule Planner.Tasks do alias Planner.Repo alias Planner.Tasks.Task - def add_task(attrs) do - attrs = - attrs - |> cast_finished_at() - - %Task{} - |> Task.changeset(attrs) - |> Repo.insert() - end - def list_all_tasks, do: Repo.all(Task) def list_unfinished_tasks do @@ -34,39 +24,32 @@ defmodule Planner.Tasks do |> Repo.all() end - def change_task(%Task{} = task) do - task - |> Task.changeset(%{}) - end + def get_task!(id), do: Repo.get!(Task, id) - def cast_finished_at(attrs) do - attrs - |> Map.update("finished_at", nil, fn - "true" -> NaiveDateTime.utc_now() - "false" -> nil - val -> val - end) + def create_task(attrs \\ %{}) do + %Task{} + |> Task.changeset(attrs) + |> Repo.insert() end def update_task(%Task{} = task, attrs) do - attrs = - attrs - |> cast_finished_at() - task |> Task.changeset(attrs) |> Repo.update() end - def get_task!(id), do: Repo.get!(Task, id) - - def exists?(id), do: Repo.exists?(from(t in Task, where: t.id == ^id)) - def delete_task_by_id!(id) do get_task!(id) |> Repo.delete() end + def change_task(%Task{} = task) do + task + |> Task.changeset(%{}) + end + + def task_exists?(id), do: Repo.exists?(from(t in Task, where: t.id == ^id)) + def finish_task_by_id!(id) do get_task!(id) |> Task.finish_task() @@ -83,7 +66,7 @@ defmodule Planner.Tasks do case task_id do :error -> :error - _ -> exists?(task_id) + _ -> task_exists?(task_id) end end end diff --git a/lib/planner/tasks/task.ex b/lib/planner/tasks/task.ex index 33a4e44..1235370 100644 --- a/lib/planner/tasks/task.ex +++ b/lib/planner/tasks/task.ex @@ -13,7 +13,6 @@ defmodule Planner.Tasks.Task do timestamps() end - @doc false def changeset(task, attrs) do task |> cast(attrs, [:value, :filed_at, :finished_at, :due_at]) @@ -21,10 +20,10 @@ defmodule Planner.Tasks.Task do |> validate_length(:value, min: 3) end - @doc false def finish_task(task) do - now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second) # TODO, this should check if `finished_at` is not nil, first - change(task, finished_at: now) + change(task, finished_at: now()) end + + defp now(), do: NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second) end diff --git a/lib/planner_web/live/tasks_components.ex b/lib/planner_web/live/tasks_components.ex index 27dcfdb..a689a39 100644 --- a/lib/planner_web/live/tasks_components.ex +++ b/lib/planner_web/live/tasks_components.ex @@ -214,18 +214,6 @@ defmodule TaskEditComponent do <%= error_tag(f, :due_at) %> -
- <%= label(f, :finished_at, class: "label") do %> - <%= if(is_nil(@task.finished_at)) do %> - <%= checkbox(f, :finished_at) %> - <% else %> - <%= checkbox(f, :finished_at, checked_value: @task.finished_at) %> - <% end %> - finished - <% end %> - <%= error_tag(f, :finished_at) %> -
-
<%= submit("save", class: "button is-dark is-small") %>
diff --git a/lib/planner_web/live/tasks_live.ex b/lib/planner_web/live/tasks_live.ex index 1b2c860..552eee2 100644 --- a/lib/planner_web/live/tasks_live.ex +++ b/lib/planner_web/live/tasks_live.ex @@ -12,7 +12,7 @@ defmodule PlannerWeb.TasksLive do {:ok, socket} end - def handle_params(%{"id" => task_id}, _, socket) do + def handle_params(%{"task_id" => task_id}, _, socket) do case Tasks.verify_task_id_from_url(task_id) do true -> {:noreply, assign(socket, :active_task, task_id)} _ -> {:noreply, push_patch(socket, to: Routes.tasks_path(socket, :index))} @@ -76,7 +76,7 @@ defmodule PlannerWeb.TasksLive do end def handle_event("new-task", %{"task" => task_params}, socket) do - case Tasks.add_task(task_params) do + case Tasks.create_task(task_params) do {:ok, task} -> socket = socket diff --git a/lib/planner_web/router.ex b/lib/planner_web/router.ex index 8a8e791..1d79577 100644 --- a/lib/planner_web/router.ex +++ b/lib/planner_web/router.ex @@ -53,8 +53,8 @@ defmodule PlannerWeb.Router do pipe_through([:browser, :require_authenticated_user]) live("/", TasksLive, :index) - live("/:id", TasksLive, :show) - live("/:id/edit", TasksLive, :edit) + live("/:task_id", TasksLive, :show) + live("/:task_id/edit", TasksLive, :edit) get("/users/settings", UserSettingsController, :edit) put("/users/settings/update_password", UserSettingsController, :update_password)