From 3c6ca3c89d7b1a972d50ec4eb0b42ab350771f72 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Tue, 31 May 2022 17:36:17 +0200 Subject: Update gtad.yml to match v3 API definitions Also: use quotient-im/matrix-spec main branch again, now that it has adjusted definitions; drop un(der)used partials --- gtad/gtad.yaml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index 03c23886..e8d4ba35 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -85,9 +85,8 @@ analyzer: imports: '"events/eventloader.h"' +on: - /state_event.yaml$/: StateEventPtr - - /room_event.yaml$/: RoomEventPtr - - /event.yaml$/: EventPtr - - /m\.room\.member/: void # Skip resolving; see EventsArray<> below + - /(room|client)_event.yaml$/: RoomEventPtr + - /event(_without_room_id)?.yaml$/: EventPtr - +set: # This renderer actually applies to all $ref things _importRenderer: '"{{#segments}}{{_}}{{#_join}}/{{/_join}}{{/segments}}.h"' @@ -115,12 +114,9 @@ analyzer: - /^Notification|Result$/: type: "std::vector<{{1}}>" imports: '"events/eventloader.h"' - - /m\.room\.member/: # Only used in an array (see also above) - type: "EventsArray" - imports: '"events/roommemberevent.h"' - /state_event.yaml$/: StateEvents - - /room_event.yaml$/: RoomEvents - - /event.yaml$/: Events + - /(room|client)_event.yaml$/: RoomEvents + - /event(_without_room_id)?.yaml$/: Events - //: "QVector<{{1}}>" - map: # `additionalProperties` in OpenAPI - RoomState: @@ -164,11 +160,8 @@ mustache: qualifiedMaybeOmittableType: "{{>openOmittable}}{{dataType.qualifiedName}}{{>closeOmittable}}" - ref: "{{#avoidCopy}}&{{/avoidCopy}}{{#moveOnly}}&&{{/moveOnly}}" maybeCrefType: - "{{#avoidCopy}}const {{/avoidCopy}}{{>maybeOmittableType}}{{>ref}}" - qualifiedMaybeCrefType: - "{{#avoidCopy}}const {{/avoidCopy}}{{>qualifiedMaybeOmittableType}}{{>ref}}" + "{{#avoidCopy}}const {{/avoidCopy}}{{>maybeOmittableType}}{{#avoidCopy}}&{{/avoidCopy}}" maybeCrefJsonObject: "{{^propertyMap}}const QJsonObject&{{/propertyMap}}\ -- cgit v1.2.3 From fed831820965ad5654317d5e7df18c23fa75de20 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Tue, 31 May 2022 16:30:22 +0200 Subject: gtad.yaml (again): shortcut OneTimeKeys This requires OneTimeKeys in keys.yaml to be marked as such (done in quotient-im/matrix-spec but it's not there in matrix-org/matrix-spec). --- gtad/gtad.yaml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index e8d4ba35..b1c143b6 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -106,6 +106,9 @@ analyzer: # imports: '"csapi/definitions/sync_filter.h"' # - getFilter<: *Filter - RoomFilter: # A structure inside Filter, same story as with *_filter.yaml + - OneTimeKeys: + type: OneTimeKeys + imports: '"e2ee/e2ee.h"' - //: *UseOmittable - array: - string: QStringList -- cgit v1.2.3 From de3a446b7b005ac57edb422eced7eec252ed3a92 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Mon, 6 Jun 2022 13:38:32 +0200 Subject: GTAD: inline public_rooms_chunk.yaml Also: drop inlining PublicRoomResponse by the name because it's already inlined by $ref before that. This configuration needs the latest GTAD (revision 51c53ed3) to work correctly; earlier GTAD will produce FTBFS code. --- gtad/gtad.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index b1c143b6..2d004cbc 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -97,10 +97,10 @@ analyzer: title: MsisdnValidationData - /_filter.yaml$/: # Event/RoomEventFilters do NOT need Omittable<> - /public_rooms_response.yaml$/: { _inline: true } + - /public_rooms_chunk.yaml$/: { _inline: true } - //: *UseOmittable # Also apply "avoidCopy" to all other ref'ed types - schema: - getTurnServer<: *QJsonObject # It's used as an opaque JSON object - - PublicRoomResponse: { _inline: true } # - defineFilter>: &Filter # Force folding into a structure # type: Filter # imports: '"csapi/definitions/sync_filter.h"' -- cgit v1.2.3 From 40311ec08a88de821884197bc60f1b48748cbbb3 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Sat, 11 Jun 2022 16:51:28 +0200 Subject: gtad.yaml: more clarifying comments --- gtad/gtad.yaml | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index 2d004cbc..12a27c06 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -88,7 +88,8 @@ analyzer: - /(room|client)_event.yaml$/: RoomEventPtr - /event(_without_room_id)?.yaml$/: EventPtr - +set: - # This renderer actually applies to all $ref things + # This renderer applies to everything actually $ref'ed + # (not substituted) _importRenderer: '"{{#segments}}{{_}}{{#_join}}/{{/_join}}{{/segments}}.h"' +on: - '/^(\./)?definitions/request_email_validation.yaml$/': @@ -96,7 +97,20 @@ analyzer: - '/^(\./)?definitions/request_msisdn_validation.yaml$/': title: MsisdnValidationData - /_filter.yaml$/: # Event/RoomEventFilters do NOT need Omittable<> + + # Despite being used in two calls, it's more practical to have those + # fields available as getters right from the respective job classes - /public_rooms_response.yaml$/: { _inline: true } + + # list_public_rooms.yaml (via public_rooms_response.yaml) and + # space_hierarchy.yaml use public_rooms_chunk.yaml as a common base + # structure, adding (space_hiearchy) or overriding + # (public_rooms_response) fields for their purposes. The spec text + # confusingly ends up with having two different structures named + # "PublicRoomsChunk". To make sure the types are distinct in + # libQuotient, this common base is inlined into the actually used + # data structures (that have distinct names) defined + # in space_hierarchy.h and public_rooms_response.h, respectively - /public_rooms_chunk.yaml$/: { _inline: true } - //: *UseOmittable # Also apply "avoidCopy" to all other ref'ed types - schema: @@ -117,17 +131,17 @@ analyzer: - /^Notification|Result$/: type: "std::vector<{{1}}>" imports: '"events/eventloader.h"' - - /state_event.yaml$/: StateEvents - - /(room|client)_event.yaml$/: RoomEvents - - /event(_without_room_id)?.yaml$/: Events + - /state_event.yaml$/: StateEvents # 'imports' already set under $ref + - /(room|client)_event.yaml$/: RoomEvents # ditto + - /event(_without_room_id)?.yaml$/: Events # ditto - //: "QVector<{{1}}>" - map: # `additionalProperties` in OpenAPI - RoomState: type: "UnorderedMap" moveOnly: - /.+/: "QHash" - - //: QVariantHash - - variant: # A sequence `type` (multitype) in OpenAPI + - //: QVariantHash # QJsonObject?.. + - variant: # A sequence `type` or a 'oneOf' group in OpenAPI - /^string,null|null,string$/: *QString - //: QVariant -- cgit v1.2.3 From 743909a728e22f52f7531b0f98395f0361cd0fd3 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Sat, 11 Jun 2022 19:41:59 +0200 Subject: gtad.yaml: Treat child rooms state as events --- gtad/gtad.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index 12a27c06..f4ad122e 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -119,6 +119,7 @@ analyzer: # type: Filter # imports: '"csapi/definitions/sync_filter.h"' # - getFilter<: *Filter + - StrippedChildStateEvent: void # only used in an array, see below - RoomFilter: # A structure inside Filter, same story as with *_filter.yaml - OneTimeKeys: type: OneTimeKeys @@ -128,8 +129,9 @@ analyzer: - string: QStringList - +set: { moveOnly: } +on: - - /^Notification|Result$/: - type: "std::vector<{{1}}>" + - /^Notification|Result|ChildRoomsChunk$/: "std::vector<{{1}}>" + - StrippedChildStateEvent: + type: StateEvents imports: '"events/eventloader.h"' - /state_event.yaml$/: StateEvents # 'imports' already set under $ref - /(room|client)_event.yaml$/: RoomEvents # ditto -- cgit v1.2.3 From 130c3ee975fe5312e97080cd978c0807b2611a68 Mon Sep 17 00:00:00 2001 From: Alexey Rusakov Date: Sat, 11 Jun 2022 21:33:21 +0200 Subject: gtad.yaml: Drop deprecated home_server field from login/register --- gtad/gtad.yaml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gtad/gtad.yaml') diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml index f4ad122e..0bec3b7a 100644 --- a/gtad/gtad.yaml +++ b/gtad/gtad.yaml @@ -29,6 +29,8 @@ analyzer: login>/user: "" login>/medium: "" login>/address: "" + login -- cgit v1.2.3