diff options
author | Andres Salomon <dilinger@queued.net> | 2021-01-18 04:00:14 -0500 |
---|---|---|
committer | Andres Salomon <dilinger@queued.net> | 2021-01-18 04:00:14 -0500 |
commit | 09eb39236666e81d5da014acea011dcd74d0999b (patch) | |
tree | 52876d96be71be1a39d5d935c1295a51995e8949 /gtad/gtad.yaml | |
parent | f1788ee27f33e9339334e0d79bde9a27d9ce2e44 (diff) | |
parent | a4e78956f105875625b572d8b98459ffa86fafe5 (diff) | |
download | libquotient-09eb39236666e81d5da014acea011dcd74d0999b.tar.gz libquotient-09eb39236666e81d5da014acea011dcd74d0999b.zip |
Update upstream source from tag 'upstream/0.6.4'
Update to upstream version '0.6.4'
with Debian dir aa8705fd74743e79c043bc9e3e425d5064404cfe
Diffstat (limited to 'gtad/gtad.yaml')
-rw-r--r-- | gtad/gtad.yaml | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/gtad/gtad.yaml b/gtad/gtad.yaml new file mode 100644 index 00000000..adf5024a --- /dev/null +++ b/gtad/gtad.yaml @@ -0,0 +1,219 @@ +analyzer: + subst: + "%CLIENT_RELEASE_LABEL%": r0 + "%CLIENT_MAJOR_VERSION%": r0 + identifiers: + signed: signedData + unsigned: unsignedData + PushRule/default: isDefault + default: defaultVersion # getCapabilities/RoomVersionsCapability + origin_server_ts: originServerTimestamp # Instead of originServerTs + start: begin # Because start() is a method in BaseJob + m.upload.size: uploadSize + m.homeserver: homeserver + m.identity_server: identityServer + m.change_password: changePassword + m.room_versions: roomVersions + AuthenticationData/additionalProperties: authInfo + /^/(Location|Protocol|User)$/: 'ThirdParty$1' + # Change some response names + /requestTokenTo.*</data/: response + requestOpenIdToken</data: tokenData + getDevice</data: device + getFilter</data: filter + getProtocols</data: protocols + getOneRoomEvent</data: event + getRoomState</data: events + getPushRule</data: pushRule + # These parameters are deprecated and unused in Quotient; so drop them + login>/user: "" + login>/medium: "" + login>/address: "" + + # Structure inside `types`: + # - swaggerType: <targetTypeSpec> + # OR + # - swaggerType: + # - swaggerFormat: <targetTypeSpec> + # - /swaggerFormatRegEx/: <targetTypeSpec> + # - //: <targetTypeSpec> # default, if the format doesn't mach anything above + # WHERE + # targetTypeSpec = targetType OR + # { type: targetType, imports: <filename OR [ filenames... ]>, <other attributes...> } + # swaggerType can be +set/+on pair; attributes from the map under +set + # are added to each type from the sequence under +on. + types: + - +set: &UseOmittable + useOmittable: + omittedValue: 'none' # Quotient::none in lib/util.h + +on: + - integer: + - int64: qint64 + - int32: qint32 + - //: int + - number: + - float: float + - //: double + - boolean: bool + - string: + - byte: &ByteStream + type: QIODevice* + imports: <QtCore/QIODevice> + - binary: *ByteStream + - +set: { avoidCopy: } + +on: + - date: + type: QDate + initializer: QDate::fromString("{{defaultValue}}") + - dateTime: + type: QDateTime + initializer: QDateTime::fromString("{{defaultValue}}") + - //: &QString + type: QString + initializer: QStringLiteral("{{defaultValue}}") + isString: + - file: *ByteStream + - +set: { avoidCopy: } + +on: + - object: &QJsonObject { type: QJsonObject } + - $ref: + - +set: { moveOnly: } + +on: + - /state_event.yaml$/: + { type: StateEventPtr, imports: "events/eventloader.h" } + - /room_event.yaml$/: + { type: RoomEventPtr, imports: "events/eventloader.h" } + - /event.yaml$/: + { type: EventPtr, imports: "events/eventloader.h" } + - /m\.room\.member$/: void # Skip resolving; see EventsArray<> below + - '/^(\./)?definitions/request_email_validation.yaml$/': + title: EmailValidationData + - '/^(\./)?definitions/request_msisdn_validation.yaml$/': + title: MsisdnValidationData + - /_filter.yaml$/: # Event/RoomEventFilters do NOT need Omittable<> + - /public_rooms_response.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" +# - getFilter<: *Filter + - RoomFilter: # A structure inside Filter, same story as with *_filter.yaml + - //: *UseOmittable + - array: + - string: QStringList + - +set: { moveOnly: } + +on: + - /^Notification|Result$/: + type: "std::vector<{{1}}>" + imports: "events/eventloader.h" + - /m\.room\.member$/: # Only used in an array (see also above) + type: "EventsArray<RoomMemberEvent>" + imports: "events/roommemberevent.h" + - /state_event.yaml$/: StateEvents + - /room_event.yaml$/: RoomEvents + - /event.yaml$/: Events + - //: "QVector<{{1}}>" + - map: # `additionalProperties` in OpenAPI + - RoomState: + type: "UnorderedMap<QString, {{1}}>" + moveOnly: + - /.+/: "QHash<QString, {{1}}>" + - //: QVariantHash + - variant: # A sequence `type` (multitype) in OpenAPI + - /^string,null|null,string$/: *QString + - //: QVariant + + #operations: + +mustache: + constants: + # Syntax elements used by GTAD +# _quote: '"' # Common quote for left and right +# _leftQuote: '"' +# _rightQuote: '"' +# _joinChar: ',' # The character used by {{_join}} - not working yet + _comment: '//' + copyrightName: Kitsune Ral + copyrightEmail: <kitsune-ral@users.sf.net> + + partials: + _typeRenderer: "{{#scope}}{{scopeCamelCase}}Job::{{/scope}}{{>name}}" + omittedValue: '{}' # default value to initialize omitted parameters with + initializer: '{{defaultValue}}' + cjoin: '{{#hasMore}}, {{/hasMore}}' + + openOmittable: + "{{^required?}}{{#useOmittable}}\ + {{^defaultValue}}Omittable<{{/defaultValue}}\ + {{/useOmittable}}{{/required?}}" + closeOmittable: + "{{^required?}}{{#useOmittable}}\ + {{^defaultValue}}>{{/defaultValue}}\ + {{/useOmittable}}{{/required?}}" + + maybeOmittableType: "{{>openOmittable}}{{dataType.name}}{{>closeOmittable}}" + qualifiedMaybeOmittableType: + "{{>openOmittable}}{{dataType.qualifiedName}}{{>closeOmittable}}" + + ref: "{{#avoidCopy}}&{{/avoidCopy}}{{#moveOnly}}&&{{/moveOnly}}" + maybeCrefType: + "{{#avoidCopy}}const {{/avoidCopy}}{{>maybeOmittableType}}{{>ref}}" + qualifiedMaybeCrefType: + "{{#avoidCopy}}const {{/avoidCopy}}{{>qualifiedMaybeOmittableType}}{{>ref}}" + + maybeCrefJsonObject: + "{{^propertyMap}}const QJsonObject&{{/propertyMap}}\ + {{#propertyMap}}QJsonObject{{/propertyMap}}" + + takeOrValue: + "{{#propertyMap}}take{{/propertyMap}}{{^propertyMap}}value{{/propertyMap}}" + takeOrLoad: "{{#moveOnly}}take{{/moveOnly}}{{^moveOnly}}load{{/moveOnly}}" + + initializeDefaultValue: + "{{#defaultValue}}{{>initializer}}{{/defaultValue}}\ + {{^defaultValue}}{{>omittedValue}}{{/defaultValue}}" + + # No inner indents in folded values! + + joinedParamDecl: >- + {{>maybeCrefType}} {{paramName}} + {{^required?}} = {{>initializeDefaultValue}}{{/required?}}{{>cjoin}} + joinedParamDef: "{{>maybeCrefType}} {{paramName}}{{>cjoin}}" + + passPathAndMaybeQuery: >- + QStringLiteral("{{basePathWithoutHost}}") + {{#pathParts}} % {{_}}{{/pathParts}}{{#queryParams?}}, + queryTo{{camelCaseOperationId}}( + {{#queryParams}}{{paramName}}{{>cjoin}}{{/queryParams}}){{/queryParams?}} + + nonInlineResponseSignature: |- + {{>docCommentShort}} + {{>maybeOmittableType}} {{paramName}}(){{^moveOnly}} const{{/moveOnly}} + + # Doc-comment blocks. Comment indent is managed by clang-format + # (without clang-format there'd have to be a separate partial definition + # for each indent...) but we take care of line breaks to maintain + # some sanity even before clang-format + + # This is for structures that don't expect a summary (e.g., JSON schema) + docCommentShort: |- + {{#description}} + /// {{_}}{{/description}} + # For structures with the summary, a common partial for summary is here; + # the main part is different in different places + docCommentSummary: |- + {{#summary}} \brief {{summary}} + *{{/summary}} + + templates: + data: + .h: "{{>data.h.mustache}}" + api: + .h: "{{>operation.h.mustache}}" + .cpp: "{{>operation.cpp.mustache}}" + + #outFilesList: apifiles.txt + |