Simplify update_file_system API

This commit is contained in:
José Valim 2023-11-14 20:13:45 +01:00
parent 835afa8287
commit 22d8e40ab6
2 changed files with 5 additions and 20 deletions

View file

@ -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

View file

@ -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 =