query rewrite

This commit is contained in:
2024-03-30 13:42:38 +02:00
parent b4521e92b8
commit 0e19c38f23
91 changed files with 1051 additions and 852 deletions
+10 -18
View File
@@ -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)
);
}
+5 -11
View 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),
);
}
}
+6 -6
View File
@@ -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);
}