Skip to content

Commit ef87dfc

Browse files
authored
Merge pull request #33106 from nextcloud/feature/update-expire-date
Update expire_date column of table comments
2 parents 8873960 + 5ed6722 commit ef87dfc

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

lib/private/Comments/Manager.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,7 +1351,8 @@ protected function updateQuery(IComment $comment, bool $tryWritingReferenceId):
13511351
->set('creation_timestamp', $qb->createNamedParameter($comment->getCreationDateTime(), 'datetime'))
13521352
->set('latest_child_timestamp', $qb->createNamedParameter($comment->getLatestChildDateTime(), 'datetime'))
13531353
->set('object_type', $qb->createNamedParameter($comment->getObjectType()))
1354-
->set('object_id', $qb->createNamedParameter($comment->getObjectId()));
1354+
->set('object_id', $qb->createNamedParameter($comment->getObjectId()))
1355+
->set('expire_date', $qb->createNamedParameter($comment->getExpireDate(), 'datetime'));
13551356

13561357
if ($tryWritingReferenceId) {
13571358
$qb->set('reference_id', $qb->createNamedParameter($comment->getReferenceId()));

tests/lib/Comments/ManagerTest.php

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -516,15 +516,41 @@ public function testSaveUpdate() {
516516
->setActor('users', 'alice')
517517
->setObject('files', 'file64')
518518
->setMessage('very beautiful, I am impressed!')
519-
->setVerb('comment');
519+
->setVerb('comment')
520+
->setExpireDate(new \DateTime('+2 hours'));
520521

521522
$manager->save($comment);
522523

523-
$comment->setMessage('very beautiful, I am really so much impressed!');
524+
$loadedComment = $manager->get($comment->getId());
525+
// Compare current object with database values
526+
$this->assertSame($comment->getMessage(), $loadedComment->getMessage());
527+
$this->assertSame(
528+
$comment->getExpireDate()->format('Y-m-d H:i:s'),
529+
$loadedComment->getExpireDate()->format('Y-m-d H:i:s')
530+
);
531+
532+
// Preserve the original comment to compare after update
533+
$original = clone $comment;
534+
535+
// Update values
536+
$comment->setMessage('very beautiful, I am really so much impressed!')
537+
->setExpireDate(new \DateTime('+1 hours'));
524538
$manager->save($comment);
525539

526540
$loadedComment = $manager->get($comment->getId());
541+
// Compare current object with database values
527542
$this->assertSame($comment->getMessage(), $loadedComment->getMessage());
543+
$this->assertSame(
544+
$comment->getExpireDate()->format('Y-m-d H:i:s'),
545+
$loadedComment->getExpireDate()->format('Y-m-d H:i:s')
546+
);
547+
548+
// Compare original object with database values
549+
$this->assertNotSame($original->getMessage(), $loadedComment->getMessage());
550+
$this->assertNotSame(
551+
$original->getExpireDate()->format('Y-m-d H:i:s'),
552+
$loadedComment->getExpireDate()->format('Y-m-d H:i:s')
553+
);
528554
}
529555

530556

0 commit comments

Comments
 (0)