fix: expand select and group by for calandar reminder backend

Signed-off-by: Hamza Mahjoubi <hamzamahjoubi221@gmail.com>
pull/47399/head
Hamza Mahjoubi 2024-08-21 17:57:08 +07:00
parent 8c60ffa0f2
commit ab3a239853
2 changed files with 10 additions and 8 deletions

@ -44,12 +44,12 @@ class Backend {
*/
public function getRemindersToProcess():array {
$query = $this->db->getQueryBuilder();
$query->select(['cr.*', 'co.calendardata', 'c.displayname', 'c.principaluri','cr.notification_date', 'cr.event_hash', 'cr.type'])
$query->select(['cr.id', 'cr.calendar_id','cr.object_id','cr.is_recurring','cr.uid','cr.recurrence_id','cr.is_recurrence_exception','cr.event_hash','cr.alarm_hash','cr.type','cr.is_relative','cr.notification_date','cr.is_repeat_based','co.calendardata', 'c.displayname', 'c.principaluri'])
->from('calendar_reminders', 'cr')
->where($query->expr()->lte('cr.notification_date', $query->createNamedParameter($this->timeFactory->getTime())))
->join('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
->join('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'))
->groupBy('cr.event_hash', 'cr.notification_date', 'cr.type');
->groupBy('cr.event_hash', 'cr.notification_date', 'cr.type', 'cr.id', 'cr.calendar_id', 'cr.object_id', 'cr.is_recurring', 'cr.uid', 'cr.recurrence_id', 'cr.is_recurrence_exception', 'cr.alarm_hash', 'cr.is_relative', 'cr.is_repeat_based', 'co.calendardata', 'c.displayname', 'c.principaluri');
$stmt = $query->execute();
return array_map(

@ -118,7 +118,7 @@ class BackendTest extends TestCase {
unset($rows[0]['id']);
unset($rows[1]['id']);
$this->assertEquals($rows[0], [
$expected1 = [
'calendar_id' => 1,
'object_id' => 1,
'uid' => 'asd',
@ -127,15 +127,15 @@ class BackendTest extends TestCase {
'is_recurrence_exception' => false,
'event_hash' => 'asd123',
'alarm_hash' => 'asd567',
'type' => 'AUDIO',
'type' => 'EMAIL',
'is_relative' => true,
'notification_date' => 123456,
'is_repeat_based' => false,
'calendardata' => 'Calendar data 123',
'displayname' => 'Displayname 123',
'principaluri' => 'principals/users/user001',
]);
$this->assertEquals($rows[1], [
];
$expected2 = [
'calendar_id' => 1,
'object_id' => 1,
'uid' => 'asd',
@ -144,14 +144,16 @@ class BackendTest extends TestCase {
'is_recurrence_exception' => false,
'event_hash' => 'asd123',
'alarm_hash' => 'asd567',
'type' => 'EMAIL',
'type' => 'AUDIO',
'is_relative' => true,
'notification_date' => 123456,
'is_repeat_based' => false,
'calendardata' => 'Calendar data 123',
'displayname' => 'Displayname 123',
'principaluri' => 'principals/users/user001',
]);
];
$this->assertEqualsCanonicalizing([$rows[0],$rows[1]], [$expected1,$expected2]);
}
public function testGetAllScheduledRemindersForEvent(): void {