Skip to content

Commit dd60369

Browse files
updated sqlite adapter
1 parent e919366 commit dd60369

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
@@ -526,6 +526,8 @@ public function createDocument(Document $collection, Document $document): Docume
526526
$attributes = $document->getAttributes();
527527
$attributes['_createdAt'] = $document->getCreatedAt();
528528
$attributes['_updatedAt'] = $document->getUpdatedAt();
529+
$attributes['_createdBy'] = $document->getCreatedBy();
530+
$attributes['_updatedBy'] = $document->getUpdatedBy();
529531
$attributes['_permissions'] = json_encode($document->getPermissions());
530532

531533
if ($this->sharedTables) {
@@ -648,6 +650,8 @@ public function updateDocument(Document $collection, string $id, Document $docum
648650
$attributes = $document->getAttributes();
649651
$attributes['_createdAt'] = $document->getCreatedAt();
650652
$attributes['_updatedAt'] = $document->getUpdatedAt();
653+
$attributes['_createdBy'] = $document->getCreatedBy();
654+
$attributes['_updatedBy'] = $document->getUpdatedBy();
651655
$attributes['_permissions'] = json_encode($document->getPermissions());
652656

653657
if ($this->sharedTables) {

tests/e2e/Adapter/Scopes/DocumentTests.php

Lines changed: 58 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -6012,71 +6012,72 @@ public function testCreatedByUpdatedBy(): void
60126012
'string' => 'upserted_test2',
60136013
'number' => 250
60146014
]);
6015-
$upsertCount = $database->createOrUpdateDocuments($collection, [$upsertDoc]);
6016-
$this->assertEquals(1, $upsertCount);
6017-
6018-
$upsertedDoc = $database->getDocument($collection, 'test2');
6019-
$this->assertEquals('explicit_creator', $upsertedDoc->getCreatedBy()); // Should preserve original creator
6020-
$this->assertEquals('test_user_2', $upsertedDoc->getUpdatedBy()); // Should update to current user
6021-
6022-
$upsertNewDoc = new Document([
6023-
'$id' => 'test5',
6024-
'string' => 'new_test5',
6025-
'number' => 500,
6026-
'$createdBy' => 'new_creator',
6027-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6028-
]);
6029-
$upsertNewCount = $database->createOrUpdateDocuments($collection, [$upsertNewDoc]);
6030-
$this->assertEquals(1, $upsertNewCount);
6031-
6032-
$newUpsertedDoc = $database->getDocument($collection, 'test5');
6033-
$this->assertEquals('new_creator', $newUpsertedDoc->getCreatedBy()); // Should use explicit creator
6034-
$this->assertEquals('test_user_2', $newUpsertedDoc->getUpdatedBy()); // Should use current user
6015+
if ($database->getAdapter()->getSupportForUpserts()) {
6016+
$upsertCount = $database->createOrUpdateDocuments($collection, [$upsertDoc]);
6017+
$this->assertEquals(1, $upsertCount);
6018+
6019+
$upsertedDoc = $database->getDocument($collection, 'test2');
6020+
$this->assertEquals('explicit_creator', $upsertedDoc->getCreatedBy()); // Should preserve original creator
6021+
$this->assertEquals('test_user_2', $upsertedDoc->getUpdatedBy()); // Should update to current user
6022+
6023+
$upsertNewDoc = new Document([
6024+
'$id' => 'test5',
6025+
'string' => 'new_test5',
6026+
'number' => 500,
6027+
'$createdBy' => 'new_creator',
6028+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6029+
]);
60356030

6031+
$upsertNewCount = $database->createOrUpdateDocuments($collection, [$upsertNewDoc]);
6032+
$this->assertEquals(1, $upsertNewCount);
60366033

6037-
$bulkDocs = [
6038-
new Document([
6039-
'$id' => 'bulk1',
6040-
'string' => 'bulk1',
6041-
'number' => 600,
6042-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6043-
]),
6044-
new Document([
6045-
'$id' => 'bulk2',
6046-
'string' => 'bulk2',
6047-
'number' => 700,
6048-
'$createdBy' => 'bulk_creator',
6049-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6050-
]),
6051-
new Document([
6052-
'$id' => 'bulk3',
6053-
'string' => 'bulk3',
6054-
'number' => 800,
6055-
'$updatedBy' => 'bulk_updater',
6056-
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6057-
])
6058-
];
6059-
$bulkCount = $database->createDocuments($collection, $bulkDocs);
6060-
$this->assertEquals(3, $bulkCount);
6034+
$newUpsertedDoc = $database->getDocument($collection, 'test5');
6035+
$this->assertEquals('new_creator', $newUpsertedDoc->getCreatedBy()); // Should use explicit creator
6036+
$this->assertEquals('test_user_2', $newUpsertedDoc->getUpdatedBy()); // Should use current user
60616037

6062-
$bulkDoc1 = $database->getDocument($collection, 'bulk1');
6063-
$bulkDoc2 = $database->getDocument($collection, 'bulk2');
6064-
$bulkDoc3 = $database->getDocument($collection, 'bulk3');
60656038

6066-
$this->assertEquals('test_user_2', $bulkDoc1->getCreatedBy());
6067-
$this->assertEquals('test_user_2', $bulkDoc1->getUpdatedBy());
6039+
$bulkDocs = [
6040+
new Document([
6041+
'$id' => 'bulk1',
6042+
'string' => 'bulk1',
6043+
'number' => 600,
6044+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6045+
]),
6046+
new Document([
6047+
'$id' => 'bulk2',
6048+
'string' => 'bulk2',
6049+
'number' => 700,
6050+
'$createdBy' => 'bulk_creator',
6051+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6052+
]),
6053+
new Document([
6054+
'$id' => 'bulk3',
6055+
'string' => 'bulk3',
6056+
'number' => 800,
6057+
'$updatedBy' => 'bulk_updater',
6058+
'$permissions' => [Permission::read(Role::any()), Permission::write(Role::any()), Permission::update(Role::any())]
6059+
])
6060+
];
6061+
$bulkCount = $database->createDocuments($collection, $bulkDocs);
6062+
$this->assertEquals(3, $bulkCount);
60686063

6069-
$this->assertEquals('bulk_creator', $bulkDoc2->getCreatedBy());
6070-
$this->assertEquals('test_user_2', $bulkDoc2->getUpdatedBy());
6064+
$bulkDoc1 = $database->getDocument($collection, 'bulk1');
6065+
$bulkDoc2 = $database->getDocument($collection, 'bulk2');
6066+
$bulkDoc3 = $database->getDocument($collection, 'bulk3');
60716067

6072-
$this->assertEquals('test_user_2', $bulkDoc3->getCreatedBy());
6073-
$this->assertEquals('bulk_updater', $bulkDoc3->getUpdatedBy());
6068+
$this->assertEquals('test_user_2', $bulkDoc1->getCreatedBy());
6069+
$this->assertEquals('test_user_2', $bulkDoc1->getUpdatedBy());
60746070

6075-
$finalAllDocs = $database->find($collection);
6076-
$this->assertCount(8, $finalAllDocs);
6071+
$this->assertEquals('bulk_creator', $bulkDoc2->getCreatedBy());
6072+
$this->assertEquals('test_user_2', $bulkDoc2->getUpdatedBy());
60776073

6078-
$database->deleteCollection($collection);
6079-
}
6074+
$this->assertEquals('test_user_2', $bulkDoc3->getCreatedBy());
6075+
$this->assertEquals('bulk_updater', $bulkDoc3->getUpdatedBy());
60806076

6077+
$finalAllDocs = $database->find($collection);
6078+
$this->assertCount(8, $finalAllDocs);
60816079

6080+
$database->deleteCollection($collection);
6081+
}
6082+
}
60826083
}

0 commit comments

Comments
 (0)