Skip to content

Commit 67791d1

Browse files
updated sqlite adapter
1 parent 2a4805e commit 67791d1

File tree

2 files changed

+62
-57
lines changed

2 files changed

+62
-57
lines changed

src/Database/Adapter/SQLite.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,8 @@ public function createDocument(Document $collection, Document $document): Docume
527527
$attributes = $document->getAttributes();
528528
$attributes['_createdAt'] = $document->getCreatedAt();
529529
$attributes['_updatedAt'] = $document->getUpdatedAt();
530+
$attributes['_createdBy'] = $document->getCreatedBy();
531+
$attributes['_updatedBy'] = $document->getUpdatedBy();
530532
$attributes['_permissions'] = json_encode($document->getPermissions());
531533

532534
if ($this->sharedTables) {
@@ -649,6 +651,8 @@ public function updateDocument(Document $collection, string $id, Document $docum
649651
$attributes = $document->getAttributes();
650652
$attributes['_createdAt'] = $document->getCreatedAt();
651653
$attributes['_updatedAt'] = $document->getUpdatedAt();
654+
$attributes['_createdBy'] = $document->getCreatedBy();
655+
$attributes['_updatedBy'] = $document->getUpdatedBy();
652656
$attributes['_permissions'] = json_encode($document->getPermissions());
653657

654658
if ($this->sharedTables) {

tests/e2e/Adapter/Scopes/DocumentTests.php

Lines changed: 58 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -6104,71 +6104,72 @@ public function testCreatedByUpdatedBy(): void
61046104
'string' => 'upserted_test2',
61056105
'number' => 250
61066106
]);
6107-
$upsertCount = $database->createOrUpdateDocuments($collection, [$upsertDoc]);
6108-
$this->assertEquals(1, $upsertCount);
6109-
6110-
$upsertedDoc = $database->getDocument($collection, 'test2');
6111-
$this->assertEquals('explicit_creator', $upsertedDoc->getCreatedBy()); // Should preserve original creator
6112-
$this->assertEquals('test_user_2', $upsertedDoc->getUpdatedBy()); // Should update to current user
6113-
6114-
$upsertNewDoc = new Document([
6115-
'$id' => 'test5',
6116-
'string' => 'new_test5',
6117-
'number' => 500,
6118-
'$createdBy' => 'new_creator',
6119-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6120-
]);
6121-
$upsertNewCount = $database->createOrUpdateDocuments($collection, [$upsertNewDoc]);
6122-
$this->assertEquals(1, $upsertNewCount);
6123-
6124-
$newUpsertedDoc = $database->getDocument($collection, 'test5');
6125-
$this->assertEquals('new_creator', $newUpsertedDoc->getCreatedBy()); // Should use explicit creator
6126-
$this->assertEquals('test_user_2', $newUpsertedDoc->getUpdatedBy()); // Should use current user
6107+
if ($database->getAdapter()->getSupportForUpserts()) {
6108+
$upsertCount = $database->createOrUpdateDocuments($collection, [$upsertDoc]);
6109+
$this->assertEquals(1, $upsertCount);
6110+
6111+
$upsertedDoc = $database->getDocument($collection, 'test2');
6112+
$this->assertEquals('explicit_creator', $upsertedDoc->getCreatedBy()); // Should preserve original creator
6113+
$this->assertEquals('test_user_2', $upsertedDoc->getUpdatedBy()); // Should update to current user
6114+
6115+
$upsertNewDoc = new Document([
6116+
'$id' => 'test5',
6117+
'string' => 'new_test5',
6118+
'number' => 500,
6119+
'$createdBy' => 'new_creator',
6120+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6121+
]);
61276122

6123+
$upsertNewCount = $database->createOrUpdateDocuments($collection, [$upsertNewDoc]);
6124+
$this->assertEquals(1, $upsertNewCount);
61286125

6129-
$bulkDocs = [
6130-
new Document([
6131-
'$id' => 'bulk1',
6132-
'string' => 'bulk1',
6133-
'number' => 600,
6134-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6135-
]),
6136-
new Document([
6137-
'$id' => 'bulk2',
6138-
'string' => 'bulk2',
6139-
'number' => 700,
6140-
'$createdBy' => 'bulk_creator',
6141-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6142-
]),
6143-
new Document([
6144-
'$id' => 'bulk3',
6145-
'string' => 'bulk3',
6146-
'number' => 800,
6147-
'$updatedBy' => 'bulk_updater',
6148-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6149-
])
6150-
];
6151-
$bulkCount = $database->createDocuments($collection, $bulkDocs);
6152-
$this->assertEquals(3, $bulkCount);
6126+
$newUpsertedDoc = $database->getDocument($collection, 'test5');
6127+
$this->assertEquals('new_creator', $newUpsertedDoc->getCreatedBy()); // Should use explicit creator
6128+
$this->assertEquals('test_user_2', $newUpsertedDoc->getUpdatedBy()); // Should use current user
61536129

6154-
$bulkDoc1 = $database->getDocument($collection, 'bulk1');
6155-
$bulkDoc2 = $database->getDocument($collection, 'bulk2');
6156-
$bulkDoc3 = $database->getDocument($collection, 'bulk3');
61576130

6158-
$this->assertEquals('test_user_2', $bulkDoc1->getCreatedBy());
6159-
$this->assertEquals('test_user_2', $bulkDoc1->getUpdatedBy());
6131+
$bulkDocs = [
6132+
new Document([
6133+
'$id' => 'bulk1',
6134+
'string' => 'bulk1',
6135+
'number' => 600,
6136+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6137+
]),
6138+
new Document([
6139+
'$id' => 'bulk2',
6140+
'string' => 'bulk2',
6141+
'number' => 700,
6142+
'$createdBy' => 'bulk_creator',
6143+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6144+
]),
6145+
new Document([
6146+
'$id' => 'bulk3',
6147+
'string' => 'bulk3',
6148+
'number' => 800,
6149+
'$updatedBy' => 'bulk_updater',
6150+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6151+
])
6152+
];
6153+
$bulkCount = $database->createDocuments($collection, $bulkDocs);
6154+
$this->assertEquals(3, $bulkCount);
61606155

6161-
$this->assertEquals('bulk_creator', $bulkDoc2->getCreatedBy());
6162-
$this->assertEquals('test_user_2', $bulkDoc2->getUpdatedBy());
6156+
$bulkDoc1 = $database->getDocument($collection, 'bulk1');
6157+
$bulkDoc2 = $database->getDocument($collection, 'bulk2');
6158+
$bulkDoc3 = $database->getDocument($collection, 'bulk3');
61636159

6164-
$this->assertEquals('test_user_2', $bulkDoc3->getCreatedBy());
6165-
$this->assertEquals('bulk_updater', $bulkDoc3->getUpdatedBy());
6160+
$this->assertEquals('test_user_2', $bulkDoc1->getCreatedBy());
6161+
$this->assertEquals('test_user_2', $bulkDoc1->getUpdatedBy());
61666162

6167-
$finalAllDocs = $database->find($collection);
6168-
$this->assertCount(8, $finalAllDocs);
6163+
$this->assertEquals('bulk_creator', $bulkDoc2->getCreatedBy());
6164+
$this->assertEquals('test_user_2', $bulkDoc2->getUpdatedBy());
61696165

6170-
$database->deleteCollection($collection);
6171-
}
6166+
$this->assertEquals('test_user_2', $bulkDoc3->getCreatedBy());
6167+
$this->assertEquals('bulk_updater', $bulkDoc3->getUpdatedBy());
61726168

6169+
$finalAllDocs = $database->find($collection);
6170+
$this->assertCount(8, $finalAllDocs);
61736171

6172+
$database->deleteCollection($collection);
6173+
}
6174+
}
61746175
}

0 commit comments

Comments
 (0)