From 5bae16be638322dfc130782ef8a00a0f742bb0a4 Mon Sep 17 00:00:00 2001 From: Pascal Bleser Date: Thu, 30 Apr 2026 10:51:14 +0200 Subject: [PATCH] groupware: API documentation updates --- pkg/jmap/model_examples.go | 55 ++++++++++++++++++++++++++ services/groupware/apidoc.yml | 7 ++-- services/groupware/package.json | 2 +- services/groupware/pnpm-lock.yaml | 64 +++++++++++++++---------------- 4 files changed, 92 insertions(+), 36 deletions(-) diff --git a/pkg/jmap/model_examples.go b/pkg/jmap/model_examples.go index c9a886d43f..699de596bf 100644 --- a/pkg/jmap/model_examples.go +++ b/pkg/jmap/model_examples.go @@ -2275,6 +2275,61 @@ func (e Exemplar) Objects() Objects { } } +func (e Exemplar) IdentityChanges() IdentityChanges { + i := e.Identity() + return IdentityChanges{ + HasMoreChanges: true, + OldState: "eu4niez2", + NewState: "oj4aix4o", + Updated: []Identity{i}, + } +} + +func (e Exemplar) CalendarChanges() CalendarChanges { + c := e.Calendar() + return CalendarChanges{ + HasMoreChanges: false, + OldState: "sai9choo", + NewState: "eeth7eid", + Updated: []Calendar{c}, + Destroyed: []string{"df", "dt"}, + } +} + +func (e Exemplar) CalendarEventChanges() CalendarEventChanges { + ev := e.CalendarEvent() + return CalendarEventChanges{ + HasMoreChanges: false, + OldState: "reem5ovu", + NewState: "oopu1eev", + Updated: []CalendarEvent{ev}, + Destroyed: []string{"zxa", "zxe", "zyy"}, + } +} + +func (e Exemplar) CalendarEventSearchResults() CalendarEventSearchResults { + ev := e.CalendarEvent() + return CalendarEventSearchResults{ + Results: []CalendarEvent{ev}, + CanCalculateChanges: true, + Position: ptr(uint(3)), + Limit: ptr(uint(10)), + Total: ptr(uint(4)), + } +} + +func (e Exemplar) ContactCardSearchResults() ContactCardSearchResults { + c1 := e.ContactCard() + c2, _, _ := e.IndividualContactCard() + return ContactCardSearchResults{ + Results: []ContactCard{c1, c2}, + CanCalculateChanges: true, + Position: ptr(uint(3)), + Limit: ptr(uint(10)), + Total: ptr(uint(4)), + } +} + func copyTo[B any, A any](a A) B { if b, err := json.Marshal(a); err != nil { panic(err) diff --git a/services/groupware/apidoc.yml b/services/groupware/apidoc.yml index 8b198633d1..a707325108 100644 --- a/services/groupware/apidoc.yml +++ b/services/groupware/apidoc.yml @@ -1,8 +1,9 @@ openapi: 3.0.4 info: - title: the title - summary: the summary - description: this is the description + title: OpenCloud Groupware API + summary: OpenCloud Groupware API + description: |- + This is the API documentation for the OpenCloud Groupware service. servers: - url: https://localhost:9200/ description: Local Development Server diff --git a/services/groupware/package.json b/services/groupware/package.json index d1cec61936..355bafd1bb 100644 --- a/services/groupware/package.json +++ b/services/groupware/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@redocly/cli": "^2.30.2", + "@redocly/cli": "^2.30.3", "@types/js-yaml": "^4.0.9", "cheerio": "^1.2.0", "js-yaml": "^4.1.1", diff --git a/services/groupware/pnpm-lock.yaml b/services/groupware/pnpm-lock.yaml index 9d18b5c1be..429d65c315 100644 --- a/services/groupware/pnpm-lock.yaml +++ b/services/groupware/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@redocly/cli': - specifier: ^2.30.2 - version: 2.30.2(@opentelemetry/api@1.9.1)(core-js@3.45.1) + specifier: ^2.30.3 + version: 2.30.3(@opentelemetry/api@1.9.1)(core-js@3.45.1) '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -191,14 +191,14 @@ packages: '@redocly/ajv@8.11.2': resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} - '@redocly/ajv@8.18.0': - resolution: {integrity: sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA==} + '@redocly/ajv@8.18.1': + resolution: {integrity: sha512-Ifm/pP/tul1qmAecpbVxCBluVE32rKfjf8gYXH4xI2gCv9mRWFhJMHzkPDM4TXlxwPQYIFegymlsy8lXz7optA==} '@redocly/cli-otel@0.1.2': resolution: {integrity: sha512-Bg7BoO5t1x3lVK+KhA5aGPmeXpQmdf6WtTYHhelKJCsQ+tRMiJoFAQoKHoBHAoNxXrhlS3K9lKFLHGmtxsFQfA==} - '@redocly/cli@2.30.2': - resolution: {integrity: sha512-DWTydfVgEJkqDMcriRuy+MX+IYaEPU0AvV/nKuT1/1ajTugofkxlClHfZOK8Kwv47qAHvZ9w3oF+WCP/fVyW2g==} + '@redocly/cli@2.30.3': + resolution: {integrity: sha512-z2T4+v4qwyEl1Cb2bRS77sK3jiYDOnIVZUYF8/3OWA1N+4znGIvs85xm5pAqQE0kltoIJuisekqERMvhdG6Z4w==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} hasBin: true @@ -212,12 +212,12 @@ packages: resolution: {integrity: sha512-4Tm4ysZkexx6ZTX7knqSZTqPlNgIvXc7Ha0pd30I694/GD0KtJE2xrElycfPds0vCLFAqoKyIzBtOF1xrLo8KA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@redocly/openapi-core@2.30.2': - resolution: {integrity: sha512-J1UB/I1s9eRpirIVgzH/B1Jj+hYQHYExruLk+edPOqneFIlFc38wKiTRkj/TVpwcmzRHJNu5SSI6NTrrfPa4BA==} + '@redocly/openapi-core@2.30.3': + resolution: {integrity: sha512-roSwxkitl+JY3LajLEg6n9ujaFkCB4cqtjgrjXxedgk57Qde5t0Vn4HBYkOomw1bHOI7W+Ux2qfPQOpzK7BnLg==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} - '@redocly/respect-core@2.30.2': - resolution: {integrity: sha512-4dVg57ItG19MGsLWDPmbUid81kHEbGqLcSSp1Q/8wHGJVzxmFgX9JOkqEw059/dwCYjP+txPhcMDORh0pK9ivQ==} + '@redocly/respect-core@2.30.3': + resolution: {integrity: sha512-9bEETk86ECE6n/0g/6MEQ3RryamTOv6mdZ0WDmHUmO3PfVUzHKFRgNcFnvyTWEC2nApdO9GbnYLjZcwyPwUdOw==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} '@tsconfig/node10@1.0.12': @@ -289,9 +289,9 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - better-ajv-errors@1.2.0: - resolution: {integrity: sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==} - engines: {node: '>= 12.13.0'} + better-ajv-errors@2.0.3: + resolution: {integrity: sha512-t1vxUP+vYKsaYi/BbKo2K98nEAZmfi4sjwvmRT8aOPDzPJeAtLurfoIDazVkLILxO4K+Sw4YrLYnBQ46l6pePg==} + engines: {node: '>= 18.20.6'} peerDependencies: ajv: 4.11.8 - 8 @@ -1122,7 +1122,7 @@ snapshots: require-from-string: 2.0.2 uri-js-replace: 1.0.1 - '@redocly/ajv@8.18.0': + '@redocly/ajv@8.18.1': dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -1133,17 +1133,17 @@ snapshots: dependencies: ulid: 2.4.0 - '@redocly/cli@2.30.2(@opentelemetry/api@1.9.1)(core-js@3.45.1)': + '@redocly/cli@2.30.3(@opentelemetry/api@1.9.1)(core-js@3.45.1)': dependencies: '@opentelemetry/exporter-trace-otlp-http': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-node': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@redocly/cli-otel': 0.1.2 - '@redocly/openapi-core': 2.30.2 - '@redocly/respect-core': 2.30.2 - ajv: '@redocly/ajv@8.18.0' - ajv-formats: 3.0.1(@redocly/ajv@8.18.0) + '@redocly/openapi-core': 2.30.3 + '@redocly/respect-core': 2.30.3 + ajv: '@redocly/ajv@8.18.1' + ajv-formats: 3.0.1(@redocly/ajv@8.18.1) colorette: 1.4.0 cookie: 0.7.2 dotenv: 16.4.7 @@ -1192,12 +1192,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@redocly/openapi-core@2.30.2': + '@redocly/openapi-core@2.30.3': dependencies: - '@redocly/ajv': 8.18.0 + '@redocly/ajv': 8.18.1 '@redocly/config': 0.48.1 - ajv: '@redocly/ajv@8.18.0' - ajv-formats: 3.0.1(@redocly/ajv@8.18.0) + ajv: '@redocly/ajv@8.18.1' + ajv-formats: 3.0.1(@redocly/ajv@8.18.1) colorette: 1.4.0 js-levenshtein: 1.1.6 js-yaml: 4.1.1 @@ -1205,14 +1205,14 @@ snapshots: pluralize: 8.0.0 yaml-ast-parser: 0.0.43 - '@redocly/respect-core@2.30.2': + '@redocly/respect-core@2.30.3': dependencies: '@faker-js/faker': 7.6.0 '@noble/hashes': 1.8.0 - '@redocly/ajv': 8.18.0 - '@redocly/openapi-core': 2.30.2 - ajv: '@redocly/ajv@8.18.0' - better-ajv-errors: 1.2.0(@redocly/ajv@8.18.0) + '@redocly/ajv': 8.18.1 + '@redocly/openapi-core': 2.30.3 + ajv: '@redocly/ajv@8.18.1' + better-ajv-errors: 2.0.3(@redocly/ajv@8.18.1) colorette: 2.0.20 json-pointer: 0.6.2 jsonpath-rfc9535: 1.3.0 @@ -1249,9 +1249,9 @@ snapshots: agent-base@7.1.4: {} - ajv-formats@3.0.1(@redocly/ajv@8.18.0): + ajv-formats@3.0.1(@redocly/ajv@8.18.1): optionalDependencies: - ajv: '@redocly/ajv@8.18.0' + ajv: '@redocly/ajv@8.18.1' ansi-regex@5.0.1: {} @@ -1267,11 +1267,11 @@ snapshots: balanced-match@4.0.4: {} - better-ajv-errors@1.2.0(@redocly/ajv@8.18.0): + better-ajv-errors@2.0.3(@redocly/ajv@8.18.1): dependencies: '@babel/code-frame': 7.29.0 '@humanwhocodes/momoa': 2.0.4 - ajv: '@redocly/ajv@8.18.0' + ajv: '@redocly/ajv@8.18.1' chalk: 4.1.2 jsonpointer: 5.0.1 leven: 3.1.0