Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a CalDAV based implementation for EventAttendanceRepository #1329

Open
chibenwa opened this issue Nov 22, 2024 · 4 comments · May be fixed by #1498
Open

Provide a CalDAV based implementation for EventAttendanceRepository #1329

chibenwa opened this issue Nov 22, 2024 · 4 comments · May be fixed by #1498
Assignees
Labels

Comments

@chibenwa
Copy link
Member

chibenwa commented Nov 22, 2024

Context

A standalone version of Event Attendance Management has been implemented in #1326 that does not require a side-by-side OpenPaas deployment.

In addition, a JMAP API has been introduced to query user event attendance status in #1328, a task that was previously accomplished through parsing email flags.

The final piece of the jigsaw is a DAV-based attendance management feature that receives attendance updates from the deployed DAV server.

Why?

Interacting with OpenPaas to access and update user calendars has proven to be ineffective. This is because the project is not under active development and any issues that arise may not be resolved as quickly as we would like.

The solution is to interact directly with the underlying DAV server. This has the added benefit of being able to interact with any DAV server, not necessarily the OpenPaas one.

How?

Introduce CalDavEventAttendanceRepository that uses DavClient.

@HoussemNasri HoussemNasri changed the title Provide a DAV based implementation Provide a CalDAV based implementation for EventAttendanceRepository Jan 10, 2025
@HoussemNasri HoussemNasri self-assigned this Jan 14, 2025
@HoussemNasri
Copy link
Member

Ticket split proposition:

  1. Create DavClient instead of the existing CarDavClient, which should handle CalDav operations.
  2. Introduce CalDavEventAttendanceRepository (this ticket)
  3. Prepare a demo.

@chibenwa
Copy link
Member Author

We need to be recursion aware.

The buttons needs to match the corresponding CALDAV VEVENT identified by UID and RECURRENCE-ID.

@HoussemNasri
Copy link
Member

Based on a discussion with Benoit.

Notes on DavServer:

Notes on Integration Tests:

  • The implementation is based on DAVClient, which does not utilize storage. Therefore, there is no need to run tests with a DistributedServer.
  • We can execute parameterized tests to toggle between the CalDav and Standalone implementations.
  • Tests specific to the Standalone or CalDav implementations should be placed in a dedicated contract test class.

@chibenwa
Copy link
Member Author

chibenwa commented Feb 3, 2025

And we can likely try using the OpenPaaS docker file to automate tests on DAV without using a mock. This should enable reusing the existing test suite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants