diff --git a/app/Domains/Vault/ManageVault/Web/Controllers/VaultController.php b/app/Domains/Vault/ManageVault/Web/Controllers/VaultController.php
index 809cd49a59d..0b46b62706f 100644
--- a/app/Domains/Vault/ManageVault/Web/Controllers/VaultController.php
+++ b/app/Domains/Vault/ManageVault/Web/Controllers/VaultController.php
@@ -6,7 +6,9 @@
use App\Domains\Vault\ManageLifeMetrics\Web\ViewHelpers\VaultLifeMetricsViewHelper;
use App\Domains\Vault\ManageVault\Services\CreateVault;
use App\Domains\Vault\ManageVault\Services\DestroyVault;
+use App\Domains\Vault\ManageVault\Services\UpdateVault;
use App\Domains\Vault\ManageVault\Web\ViewHelpers\VaultCreateViewHelper;
+use App\Domains\Vault\ManageVault\Web\ViewHelpers\VaultEditViewHelper;
use App\Domains\Vault\ManageVault\Web\ViewHelpers\VaultIndexViewHelper;
use App\Domains\Vault\ManageVault\Web\ViewHelpers\VaultShowViewHelper;
use App\Http\Controllers\Controller;
@@ -86,6 +88,33 @@ public function show(Request $request, Vault $vault)
]);
}
+ public function edit(Vault $vault)
+ {
+ return Inertia::render('Vault/Edit', [
+ 'layoutData' => VaultIndexViewHelper::layoutData(),
+ 'data' => VaultEditViewHelper::data($vault),
+ ]);
+ }
+
+ public function update(Request $request, Vault $vault)
+ {
+ $data = [
+ 'account_id' => Auth::user()->account_id,
+ 'author_id' => Auth::id(),
+ 'vault_id' => $vault->id,
+ 'name' => $request->input('name'),
+ 'description' => $request->input('description'),
+ ];
+
+ (new UpdateVault)->execute($data);
+
+ return response()->json([
+ 'data' => route('vault.show', [
+ 'vault' => $vault,
+ ]),
+ ], 200);
+ }
+
public function destroy(Request $request, Vault $vault)
{
$data = [
diff --git a/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultEditViewHelper.php b/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultEditViewHelper.php
new file mode 100644
index 00000000000..c09e099962d
--- /dev/null
+++ b/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultEditViewHelper.php
@@ -0,0 +1,23 @@
+ $vault->id,
+ 'name' => $vault->name,
+ 'description' => $vault->description,
+ 'url' => [
+ 'update' => route('vault.update', [
+ 'vault' => $vault,
+ ]),
+ 'back' => route('vault.index'),
+ ],
+ ];
+ }
+}
diff --git a/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultIndexViewHelper.php b/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultIndexViewHelper.php
index 60a019d7374..7c87cdf9cc8 100644
--- a/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultIndexViewHelper.php
+++ b/app/Domains/Vault/ManageVault/Web/ViewHelpers/VaultIndexViewHelper.php
@@ -108,6 +108,9 @@ public static function data(User $user): array
'show' => route('vault.show', [
'vault' => $vault,
]),
+ 'edit' => route('vault.edit', [
+ 'vault' => $vault,
+ ]),
'settings' => route('vault.settings.index', [
'vault' => $vault->id,
]),
diff --git a/resources/js/Pages/Vault/Edit.vue b/resources/js/Pages/Vault/Edit.vue
new file mode 100644
index 00000000000..0fdc05c2c79
--- /dev/null
+++ b/resources/js/Pages/Vault/Edit.vue
@@ -0,0 +1,153 @@
+
+