Commit Graph

8 Commits

Author SHA1 Message Date
Pascal Bleser
36c9de5f73 groupware: add threadSize in email-by-id response 2026-02-23 09:38:08 +01:00
Pascal Bleser
4298f40949 groupware: add quota API + add support for Accept-Language and Content-Language 2026-02-23 09:37:29 +01:00
Pascal Bleser
1bf3b7d502 fix(groupware): fix JMAP error handling
* the JMAP error handling was not working properly, fixed it and added
   error definitions accordingly

 * add operations to retrieve mailbox roles and mailboxes by role for
   all accounts
2026-02-23 09:37:28 +01:00
Pascal Bleser
ab0a24c46d groupware: swagger API documentation improvements
* add more documentation for properties

 * fixes after a bit of trial-and-error with go-swagger

 * fix email filter marshalling when there are no search criteria

 * introduce an apidoc.yml that contains Swagger data and is merged when
   generating the swagger.yml from sources
2026-02-23 09:34:45 +01:00
Pascal Bleser
9dbb1082d3 Groupware improvements
* ensure that all the jmap responses contain the SessionState

 * implement missing errors that were marked as TODO

 * moved common functions from pkg/jmap and pkg/services/groupware to
   pkg/log and pkg/structs to commonalize them across both source trees

 * implement error handling for SetError occurences

 * Email: replace anonymous map[string]bool for mailbox rights with a
   MailboxRights struct, as the keys are well-defined, which allows for
   properly documenting them

 * introduce ObjectType as an "enum"

 * fix JSON marshalling and unmarshalling of EmailBodyStructure

 * move the swagger documentation structs from groupware_api.go to
   groupware_docs.go

 * fix: change verb for /groupware/accounts/*/vacation from POST to PUT
2026-02-23 09:34:45 +01:00
Pascal Bleser
892fe602d5 groupware: implement JSON:API's error response format, with a revamped error handling in jmap and services/groupware 2026-02-23 09:34:45 +01:00
Pascal Bleser
a29108f37e 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-23 09:34:45 +01:00
Pascal Bleser
5f951d7622 groupware and jmap improvements and refactoring 2026-02-23 09:34:45 +01:00