Commit Graph

16 Commits

Author SHA1 Message Date
Pascal Bleser
dca69a76f5 groupware: minor email searching response improvements + started implementing vacation response setting API 2026-02-10 17:03:58 +01:00
Pascal Bleser
6cd6759152 groupware: add identities of all accounts to the index resource 2026-02-10 17:03:58 +01:00
Pascal Bleser
f2cba45d48 groupware: fix email search, add variant that includes the full emails 2026-02-10 17:03:58 +01:00
Pascal Bleser
ad8f48fd1d Groupware: refactor jmap package, implement Email/set, EmailSubmission
* refactor the jmap package to split it into several files as the
   jmap.api.go file was becoming too unwieldy

 * refactor the Groupware handler function response to be a Response
   object, to be more future-proof and avoid adding more and more
   return parameters while handling "no content" response as well

 * more godoc for the JMAP model

 * add Email creation, updating, deleting (Email/set,
   EmailSubmission/set)

 * add endpoints
   - POST /accounts/{accountid}/messages
   - PATCH|PUT /accounts/{accountid}/messages/{messageid}
   - DELETE /accounts/{accountid}/messages/{messageid}
2026-02-10 17:03:58 +01:00
Pascal Bleser
6a8707c5a3 groupware: implement message search with snippets 2026-02-10 17:03:58 +01:00
Pascal Bleser
203be7555e groupware: blob streaming (upload and download) 2026-02-10 17:03:58 +01:00
Pascal Bleser
5b02a15d34 groupware: more JMAP operations implementation 2026-02-10 17:03:58 +01:00
Pascal Bleser
986150547c groupware: further implementation and improvements 2026-02-10 17:03:58 +01:00
Pascal Bleser
45db469542 refactored the Session object, refactored the services/groupware directory, and started Swagger documentation implementation 2026-02-10 17:03:58 +01:00
Pascal Bleser
1307aaca41 groupware: refactoring the API mechanisms 2026-02-10 17:03:58 +01:00
Pascal Bleser
4f052824fe groupware: implement JSON:API's error response format, with a revamped error handling in jmap and services/groupware 2026-02-10 17:03:58 +01:00
Pascal Bleser
df64d48119 Refactor groupware service after ADR decision on the Groupware API
* after having decided that the Groupware API should be a standalone
   independent custom REST API that is using JMAP data models as much as
   possible,
 * removed Groupware APIs from the Graph service
 * moved Groupware implementation to the Groupware service, and
   refactored a few things accordingly
2026-02-10 17:03:58 +01:00
Pascal Bleser
552ccbe300 Groupware and jmap: cleanup and API documentation 2026-02-10 17:03:58 +01:00
Pascal Bleser
6e9a36dc75 Groupware improvements: refactoring, k6 tests
* refactored the models to be strongly typed with structs and mapstruct
   to decompose the dynamic parts of the JMAP payloads

 * externalized large JSON strings for tests into .json files under
   testdata/

 * added a couple of fantasy Graph groupware APIs to explore further
   options

 * added k6 scripts to test those graph/me/messages APIs, with a setup
   program to set up users in LDAP, fill their IMAP inbox, activate them
   in Stalwart, cleaning things up, etc...
2026-02-10 17:03:58 +01:00
Pascal Bleser
8b7f3a20f3 groupware and jmap improvements and refactoring 2026-02-10 17:03:58 +01:00
Pascal Bleser
08a327417a move services/groupware/pkg/jmap to pkg/jmap 2026-02-10 17:03:58 +01:00