where('id', $formId)->first(); if ($form) { $storagePath = 'forms/' . $form->sector . '/' . $form->form_code . '/' . $form->inventory_year . '/metadata'; $metadata = null; if (isset($data['id'])) { $metadata = ActivityFormMetadata::rowActive()->find($data['id']); } if ($metadata) { if (isset($data['file_document'])) { $oldFilePath = $storagePath . '/' . $metadata->file_name; if ($metadata->file_name != $data['file_document']->hashName()) { Storage::disk('public')->delete($oldFilePath); } $data['file_name'] = basename($data['file_document']->store($storagePath, 'public')); } $this->update($metadata, $data); } else { if (isset($data['file_document'])) { $data['file_name'] = basename($data['file_document']->store($storagePath, 'public')); } $metadata = $this->create($data); } logUserActivity(ActivityType::INSERT_METADATA, $formId); return $metadata; } } public function destroy(ActivityFormMetadata $metadata, $storagePath) { if ($metadata) { $oldFilePath = $storagePath . '/' . $metadata->file_name; Storage::disk('public')->delete($oldFilePath); $this->delete($metadata); logUserActivity(ActivityType::DELETE_METADATA, $metadata->form_id); } } }