From 6372373e81f4f813f7ea866aaa8659263c26bc46 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 21 Aug 2026 10:27:21 +0200 Subject: [PATCH] refactor(metadata): rewrite legacy-era regions of the value writer and routes in place --- .../EloquentCustomFieldValueWriter.php | 18 +++++++++--------- app/Domains/Metadata/routes/company.php | 13 +++++++++++-- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/Domains/Metadata/Application/EloquentCustomFieldValueWriter.php b/app/Domains/Metadata/Application/EloquentCustomFieldValueWriter.php index 2926a2eb..1c16eaea 100644 --- a/app/Domains/Metadata/Application/EloquentCustomFieldValueWriter.php +++ b/app/Domains/Metadata/Application/EloquentCustomFieldValueWriter.php @@ -13,12 +13,13 @@ class EloquentCustomFieldValueWriter implements CustomFieldValueWriter foreach ($customFields as $field) { $field = $this->normalize($field); $customField = CustomField::find($field['id']); + $answerColumn = getCustomFieldValueKey($customField->type); $valuable->fields()->create([ - 'type' => $customField->type, - 'custom_field_id' => $customField->id, - 'company_id' => $customField->company_id, - getCustomFieldValueKey($customField->type) => $field['value'], + 'type' => $customField['type'], + 'custom_field_id' => $customField['id'], + 'company_id' => $customField['company_id'], + $answerColumn => $field['value'], ]); } } @@ -29,14 +30,13 @@ class EloquentCustomFieldValueWriter implements CustomFieldValueWriter $field = $this->normalize($field); $customField = CustomField::find($field['id']); $customFieldValue = $valuable->fields()->firstOrCreate([ - 'custom_field_id' => $customField->id, - 'type' => $customField->type, + 'custom_field_id' => $customField['id'], + 'type' => $customField['type'], 'company_id' => $valuable->company_id, ]); - $type = getCustomFieldValueKey($customField->type); - $customFieldValue->$type = $field['value']; - $customFieldValue->save(); + $answerColumn = getCustomFieldValueKey($customField->type); + $customFieldValue->forceFill([$answerColumn => $field['value']])->save(); } } diff --git a/app/Domains/Metadata/routes/company.php b/app/Domains/Metadata/routes/company.php index 5f6e7421..db9d8a9f 100644 --- a/app/Domains/Metadata/routes/company.php +++ b/app/Domains/Metadata/routes/company.php @@ -4,5 +4,14 @@ use App\Domains\Metadata\Http\Controllers\CustomFieldsController; use App\Domains\Metadata\Http\Controllers\NotesController; use Illuminate\Support\Facades\Route; -Route::resource('custom-fields', CustomFieldsController::class); -Route::apiResource('notes', NotesController::class); +// Field definitions are registered as a full resource rather than an API one: +// the create and edit routes stay in the table even though the SPA has no page +// to put them on. +Route::resources([ + 'custom-fields' => CustomFieldsController::class, +]); + +// The notes library takes the API set only, so no form routes are minted. +Route::apiResources([ + 'notes' => NotesController::class, +]);