From 74d9d83203b3e127e38e574b268984059b7609bd Mon Sep 17 00:00:00 2001 From: Hamza Date: Sat, 23 May 2026 20:23:51 +0200 Subject: [PATCH 1/2] fix(trashbin): expose source-calendar-uri and calendar-owner-principal-uri props Signed-off-by: Hamza --- src/models/calendarTrashBin.js | 2 ++ src/parser.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/models/calendarTrashBin.js b/src/models/calendarTrashBin.js index f0fac8da..35c32bc2 100644 --- a/src/models/calendarTrashBin.js +++ b/src/models/calendarTrashBin.js @@ -35,6 +35,8 @@ export class CalendarTrashBin extends DavCollection { .map((p) => ({ name: p })) .concat([ { name: [NS.NEXTCLOUD, 'calendar-uri'] }, + { name: [NS.NEXTCLOUD, 'source-calendar-uri'] }, + { name: [NS.NEXTCLOUD, 'calendar-owner-principal-uri'] }, { name: [NS.NEXTCLOUD, 'deleted-at'] }, ]), }) diff --git a/src/parser.js b/src/parser.js index ec65cdce..97310b38 100644 --- a/src/parser.js +++ b/src/parser.js @@ -183,6 +183,8 @@ export default class Parser { this.registerParser('{http://nextcloud.com/ns}owner-displayname', Parser.text) this.registerParser('{http://nextcloud.com/ns}deleted-at', Parser.iso8601DateTime) this.registerParser('{http://nextcloud.com/ns}calendar-uri', Parser.text) + this.registerParser('{http://nextcloud.com/ns}source-calendar-uri', Parser.text) + this.registerParser('{http://nextcloud.com/ns}calendar-owner-principal-uri', Parser.text) this.registerParser('{http://nextcloud.com/ns}has-photo', Parser.bool) this.registerParser('{http://nextcloud.com/ns}favorite', Parser.bool) this.registerParser('{http://nextcloud.com/ns}trash-bin-retention-duration', Parser.decInt) From cfb4274fd0adbf527f11ca82f33810025f6c15c9 Mon Sep 17 00:00:00 2001 From: Hamza Date: Wed, 27 May 2026 18:00:05 +0200 Subject: [PATCH 2/2] fix(trashbin): expose delegator prop Signed-off-by: Hamza --- src/models/deletedCalendarObject.js | 5 +++++ src/parser.js | 1 + test/unit/models/deletedCalendarObjectTest.js | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/models/deletedCalendarObject.js b/src/models/deletedCalendarObject.js index a0993fec..31516f8b 100644 --- a/src/models/deletedCalendarObject.js +++ b/src/models/deletedCalendarObject.js @@ -45,6 +45,10 @@ export class DeletedCalendarObject extends VObject { return this._props[`{${NS.NEXTCLOUD}}deleted-at`] } + get delegator() { + return this._props[`{${NS.NEXTCLOUD}}delegator`] + } + /** * @inheritDoc */ @@ -54,6 +58,7 @@ export class DeletedCalendarObject extends VObject { [NS.NEXTCLOUD, 'source-calendar-uri'], [NS.NEXTCLOUD, 'calendar-owner-principal-uri'], [NS.NEXTCLOUD, 'deleted-at'], + [NS.NEXTCLOUD, 'delegator'], ]) } diff --git a/src/parser.js b/src/parser.js index 97310b38..149d174a 100644 --- a/src/parser.js +++ b/src/parser.js @@ -185,6 +185,7 @@ export default class Parser { this.registerParser('{http://nextcloud.com/ns}calendar-uri', Parser.text) this.registerParser('{http://nextcloud.com/ns}source-calendar-uri', Parser.text) this.registerParser('{http://nextcloud.com/ns}calendar-owner-principal-uri', Parser.text) + this.registerParser('{http://nextcloud.com/ns}delegator', Parser.text) this.registerParser('{http://nextcloud.com/ns}has-photo', Parser.bool) this.registerParser('{http://nextcloud.com/ns}favorite', Parser.bool) this.registerParser('{http://nextcloud.com/ns}trash-bin-retention-duration', Parser.decInt) diff --git a/test/unit/models/deletedCalendarObjectTest.js b/test/unit/models/deletedCalendarObjectTest.js index f131b155..437c8ae7 100644 --- a/test/unit/models/deletedCalendarObjectTest.js +++ b/test/unit/models/deletedCalendarObjectTest.js @@ -44,6 +44,7 @@ describe('DeletedCalendarObject model', () => { '{http://nextcloud.com/ns}source-calendar-uri': 'source', '{http://nextcloud.com/ns}calendar-owner-principal-uri': 'principals/users/user', '{http://nextcloud.com/ns}deleted-at': new Date('2026-05-20T10:11:12Z'), + '{http://nextcloud.com/ns}delegator': 'principals/users/owner', } const object = new DeletedCalendarObject(parent, request, url, props) @@ -52,6 +53,7 @@ describe('DeletedCalendarObject model', () => { expect(object.sourceCalendarUri).toEqual('source') expect(object.calendarOwnerPrincipalUri).toEqual('principals/users/user') expect(object.deletedAt).toEqual(new Date('2026-05-20T10:11:12Z')) + expect(object.delegator).toEqual('principals/users/owner') }) })