Commit Graph

15 Commits

Author SHA1 Message Date
Pascal Bleser
b73c317708 groupware: refactor for conciseness
* introduce jmap.Context to hold multiple parameters and shorten
   function calls

 * introduce SearchResultsTemplate
2026-07-09 14:30:13 +02:00
Pascal Bleser
1cafc9e918 groupware: model refactoring, introducing typed interfaces and Foo
* move ContactCard from jscontact to jmap, as it is actually a JMAP
   specification item, but also was causing too many issues with
   circular references from jscontact -> jmap

 * introduce Foo, Idable, GetRequest, GetResponse, etc... types and
   generics

 * first attempt at a Foo factory type for Mailboxes, needs to be
   expanded to further minimize repetition

 * add more specialized template functions to avoid repetition

 * introduce ChangesTemplate[T] for *Changes structs
2026-07-09 14:30:12 +02:00
Pascal Bleser
3eae25b26a groupware: pollute code with NOSONAR comments, and make a little more use of JMAP API templates 2026-07-09 14:15:52 +02:00
Pascal Bleser
4fd6912967 groupware: remove remnants of go-swagger documentation, since we are switching to using our own tool instead 2026-07-09 14:15:52 +02:00
Pascal Bleser
0fd87e7d9b groupware: as suggested in the review PR 1994, remove all filename prefixes that match the package (groupware_xyz.go -> xyz.go), for groupware, jmap, jscontact, jscalendar 2026-07-09 14:15:52 +02:00
Pascal Bleser
c522e1fb52 groupware: convert documentation to proper markdown 2026-07-09 14:15:52 +02:00
Pascal Bleser
f16df72672 API documentation changes for groupware-apidocs
* add example generator infrastructure, with some examples for pkg/jmap
   and pkg/groupware, with more needing to be done

 * alter the apidoc Makefile to stop using go-swagger but, instead, use
   the openapi.yml file that must be dropped into that directory using
   groupware-apidocs (will improve the integration there later)

 * add Makefile target to generate examples

 * bump redocly from 2.4.0 to 2.14.5

 * introduce Request.PathParam() and .PathParamDoc() to improve API
   documentation, as well as future-proofing

 * improve X-Request-ID and Trace-Id header handling in the middleware
   by logging it safely when an error occurs in the middleware
2026-07-09 14:15:52 +02:00
Pascal Bleser
0664f533df groupware: update to Stalwart 0.15.0 2026-07-09 14:15:52 +02:00
Pascal Bleser
896fe2dede groupware: fix failing pkg/jscontact unit tests 2026-07-09 14:15:52 +02:00
Pascal Bleser
36b5fef005 groupware: add getting a contact by ID + add integration tests for contacts 2026-07-09 14:15:51 +02:00
Pascal Bleser
99d34b5b20 groupware: add ContactCard operations 2026-07-09 14:15:51 +02:00
Pascal Bleser
9079be072c groupware: add mock endpoints for addressbooks and contacts 2026-07-09 14:15:50 +02:00
Pascal Bleser
8c3fea6473 implement JSCalendar (RFC 8984) 2026-07-09 14:15:50 +02:00
Pascal Bleser
ab08217213 JSContact: refactored after full test coverage, stronger typing for enumerations 2026-07-09 14:15:50 +02:00
Pascal Bleser
d15ac805ca Implement JSContact (RFC9553) Model
* add pkg/jscontact with the implementation of the RFC9553 data model

 * add JMAP Calendar session capabilities support in pkg/jmap
2026-07-09 14:15:50 +02:00