query rewrite
This commit is contained in:
+10
-18
@@ -3,12 +3,10 @@
|
||||
namespace Lucent\Revision;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use Lucent\Edge\EdgeCollection;
|
||||
use Lucent\Record\FileInfo;
|
||||
use Lucent\Record\Record;
|
||||
use Lucent\Record\RecordData;
|
||||
use Lucent\Record\System;
|
||||
use PhpOption\Option;
|
||||
use Lucent\Graph\Data\FieldData;
|
||||
use Lucent\Graph\Edge\EdgeCollection;
|
||||
use Lucent\Graph\Record\Record;
|
||||
use Lucent\Graph\Record\System;
|
||||
|
||||
readonly class Revision
|
||||
{
|
||||
@@ -16,20 +14,16 @@ readonly class Revision
|
||||
/**
|
||||
* @param string $id
|
||||
* @param string $recordId
|
||||
* @param string $schema
|
||||
* @param System $_sys
|
||||
* @param RecordData $data
|
||||
* @param FieldData $data
|
||||
* @param EdgeCollection $_edges
|
||||
* @param Option<FileInfo> $_file
|
||||
*/
|
||||
function __construct(
|
||||
public string $id,
|
||||
public string $recordId,
|
||||
public string $schema,
|
||||
public System $_sys,
|
||||
public RecordData $data,
|
||||
public EdgeCollection $_edges,
|
||||
public Option $_file,
|
||||
public string $id,
|
||||
public string $recordId,
|
||||
public System $_sys,
|
||||
public FieldData $data,
|
||||
public EdgeCollection $_edges,
|
||||
|
||||
)
|
||||
{
|
||||
@@ -45,11 +39,9 @@ readonly class Revision
|
||||
return new Revision(
|
||||
id: (string)Str::uuid(),
|
||||
recordId: $record->id,
|
||||
schema: $record->schema,
|
||||
_sys: $record->_sys,
|
||||
data: $record->data,
|
||||
_edges: $edges,
|
||||
_file: empty($record->_file) ? none() : some($record->_file)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,8 @@
|
||||
namespace Lucent\Revision;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Lucent\Edge\EdgeCollection;
|
||||
use Lucent\Record\FileInfo;
|
||||
use Lucent\Record\RecordData;
|
||||
use Lucent\Record\System;
|
||||
use Lucent\Graph\Data\FieldData;
|
||||
use Lucent\Graph\Record\System;
|
||||
use Lucent\Support\Collection;
|
||||
use PhpOption\Option;
|
||||
use stdClass;
|
||||
@@ -77,11 +75,9 @@ class RevisionRepo
|
||||
return [
|
||||
"id" => $revision->id,
|
||||
"recordId" => $revision->recordId,
|
||||
"schema" => $revision->schema,
|
||||
"_sys" => json_encode($revision->_sys),
|
||||
"_file" => $revision->_file->map(fn($v) => json_encode($v))->getOrElse(null),
|
||||
"data" => json_encode($revision->data),
|
||||
"_edges" => $revision->_edges->getOrElse(null)->toJson(),
|
||||
"_edges" => $revision->_edges->toJson(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -92,11 +88,9 @@ class RevisionRepo
|
||||
return new Revision(
|
||||
id: $data->id,
|
||||
recordId: $data->recordId,
|
||||
schema: $data->schema,
|
||||
_sys: System::fromArray(json_decode($data->_sys, true)),
|
||||
data: new RecordData(json_decode($data->data, true)),
|
||||
_edges: Option::fromValue($data->_edges)->map([EdgeCollection::class,'fromJson']),
|
||||
_file: Option::fromValue($data->_file)->map([FileInfo::class,'fromJSON'])
|
||||
data: new FieldData(json_decode($data->data, true)),
|
||||
_edges: $data->_edges->fromJson($data->_edges),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
namespace Lucent\Revision;
|
||||
|
||||
use Lucent\Channel\ChannelService;
|
||||
use Lucent\Edge\EdgeCollection;
|
||||
use Lucent\Record\Record;
|
||||
use Lucent\Graph\Edge\EdgeCollection;
|
||||
use Lucent\Graph\Record\Record;
|
||||
use Lucent\Support\Collection;
|
||||
use PhpOption\Option;
|
||||
|
||||
@@ -13,7 +13,7 @@ readonly class RevisionService
|
||||
|
||||
public function __construct(
|
||||
private ChannelService $channelService,
|
||||
private RevisionRepo $revisionRepo,
|
||||
private RevisionRepo $revisionRepo,
|
||||
)
|
||||
{
|
||||
}
|
||||
@@ -42,15 +42,15 @@ readonly class RevisionService
|
||||
* @param EdgeCollection $edges
|
||||
* @return void
|
||||
*/
|
||||
public function create(Record $record,EdgeCollection $edges): void
|
||||
public function create(Record $record, EdgeCollection $edges): void
|
||||
{
|
||||
$schema = $this->channelService->getSchema($record->schema)->get();
|
||||
if($schema->revisions <= 0){
|
||||
if ($schema->revisions <= 0) {
|
||||
return;
|
||||
}
|
||||
$revision = Revision::fromRecord($record, $edges);
|
||||
$this->revisionRepo->create($revision);
|
||||
$this->revisionRepo->cleanupRecord($record->id,$schema->revisions);
|
||||
$this->revisionRepo->cleanupRecord($record->id, $schema->revisions);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user