From 22d8e40ab60bb34224beea777ef721400e7e5e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 14 Nov 2023 20:13:45 +0100 Subject: [PATCH] Simplify update_file_system API --- lib/livebook/file_systems.ex | 21 ++----------------- .../live/hub/file_system_form_component.ex | 4 +++- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/lib/livebook/file_systems.ex b/lib/livebook/file_systems.ex index a75306c4e..c0b2bf2e4 100644 --- a/lib/livebook/file_systems.ex +++ b/lib/livebook/file_systems.ex @@ -7,29 +7,12 @@ defmodule Livebook.FileSystems do @spec type(FileSystem.t()) :: String.t() def type(%module{}), do: module_to_type(module) - @doc """ - Updates file system with the given changes. - """ - @spec update_file_system(FileSystem.t(), map()) :: - {:ok, FileSystem.t()} | {:error, Ecto.Changeset.t()} - def update_file_system(file_system, attrs) do - file_system - |> change_file_system(attrs) - |> Ecto.Changeset.apply_action(:update) - end - - @doc """ - Returns an `%Ecto.Changeset{}` for tracking file system changes. - """ - @spec change_file_system(FileSystem.t()) :: Ecto.Changeset.t() - def change_file_system(file_system) do - change_file_system(file_system, %{}) - end - @doc """ Returns an `%Ecto.Changeset{}` for tracking file system changes. """ @spec change_file_system(FileSystem.t(), map()) :: Ecto.Changeset.t() + def change_file_system(file_system, attrs \\ %{}) + def change_file_system(%FileSystem.S3{} = file_system, attrs) do FileSystem.S3.change_file_system(file_system, attrs) end diff --git a/lib/livebook_web/live/hub/file_system_form_component.ex b/lib/livebook_web/live/hub/file_system_form_component.ex index fa525efb7..5ab3a4827 100644 --- a/lib/livebook_web/live/hub/file_system_form_component.ex +++ b/lib/livebook_web/live/hub/file_system_form_component.ex @@ -87,7 +87,9 @@ defmodule LivebookWeb.Hub.FileSystemFormComponent do end def handle_event("save", %{"file_system" => attrs}, socket) do - with {:ok, file_system} <- FileSystems.update_file_system(socket.assigns.file_system, attrs), + changeset = FileSystems.change_file_system(socket.assigns.file_system, attrs) + + with {:ok, file_system} <- Ecto.Changeset.apply_action(changeset, :update), :ok <- check_file_system_connectivity(file_system), :ok <- save_file_system(file_system, socket) do message =