move into sonardesk
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Builder\Services;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Builder\Models\BuilderDocument;
|
||||
|
||||
final class BuilderDocumentService
|
||||
{
|
||||
public function save(BuilderDocument $document, array $payload, ?int $userId = null): BuilderDocument
|
||||
{
|
||||
return DB::transaction(function () use ($document, $payload, $userId) {
|
||||
if ($document->exists && $document->isDirty()) {
|
||||
$document->versions()->create(['version' => $document->version, 'document' => $document->getOriginal('document') ?: [], 'settings' => $document->getOriginal('settings') ?: [], 'created_by' => $userId]);
|
||||
}
|
||||
$document->fill($payload);
|
||||
$document->updated_by = $userId;
|
||||
if (! $document->exists) {
|
||||
$document->created_by = $userId;
|
||||
} else {
|
||||
$document->version++;
|
||||
}
|
||||
$document->save();
|
||||
|
||||
return $document->refresh();
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user