aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi
AgeCommit message (Collapse)Author
2018-12-12gtad.yaml: use more compact definitions where possibleKitsune Ral
2018-12-12csapi/rooms.h: regenerate to update doc-commentsKitsune Ral
2018-12-08Refactor toJson/fillJsonKitsune Ral
Both now use through a common JsonConverter<> template class with its base definition tuned for structs/QJsonObjects and specialisations for non-object types. This new implementation doesn't work with virtual fillJson functions yet (so EventContent classes still use toJson as a member function) and does not cope quite well with non-constructible objects (you have to specialise JsonConverter<> rather than, more intuitively, JsonObjectConverter<>), but overall is more streamlined compared to the previous implementation. It also fixes one important issue that pushed for a rewrite: the previous implementation was not working with structure hierarchies at all so (in particular) the Filter part of CS API was totally disfunctional.
2018-11-23Update CS APIKitsune Ral
2018-09-29Support CS API 0.4.0Kitsune Ral
Numerous changes in CS (and now also AS) API, including compatibility-breaking ones - see the diff for details.
2018-09-29Prepare for CS API 0.4.0Kitsune Ral
This commit consists of two parts: upgrading the API infrastructure and trivial but sweeping update to the generated files. 1. The API infrastructure (converters.h, *.mustache and some other non-generated files) now can deal with top-level JSON arrays and response inlining; better supports property maps; and gets some formatting fixes in generated code. 2. Generated files now use QJsonValue instead of QJsonObject as a default type to (un)marshall Matrix API data structures, to match the change in the infrastructure above This commit is still using the old Matrix API definitions, before CS API 0.4.0. Getting to CS API 0.4.0 will come next.
2018-08-25Update to the recent CS API (watch out for breakage)Kitsune Ral
Breaking changes: * guest_can_join is no more a thing - neither in Connection::createRoom, nor even in CreateRoomJob (it turned out that Synapse didn't really process this flag); * LoginJob has changed its list of arguments. If you use Connection to do logins (and you really should), you shouldn't be affected. * GetPublicRoomsJob now returns PublicRoomsResponse instead of providing all the response parts within the job Watch other changes in the diff.
2018-07-29csapi: define PushRule more accuratelyKitsune Ral
It's not always a JSON object; it's either a SetTweakAction object or a string. (Unfortunately, QVariant isn't a template type and there's no easy way to put Q_DECLARE_METATYPE(SetTweakAction) in a Mustache template, so adding one is left as an exercise to the user now.)
2018-07-28csapi/third_party_lookup.*: Properly pass a variadic (aka exploded) parametersKitsune Ral
Most of the actual change was in the API definition files (thanks to @anoadragon453), plus a converter from a QJsonObject map to the URL query string.
2018-07-22Switched to GTAD 0.7-preKitsune Ral
{{>}} instead of {{#@filePartial}}, library macros begin with _ instead of @, mustache/definitions split - see the GTAD commit log.
2018-07-22gtad.yaml: cleanupKitsune Ral
2018-07-22csapi: Minor cleanup in #includesKitsune Ral
2018-07-21csapi: add definitions/auth_data.* and optimise out trivial files with the ↵Kitsune Ral
latest GTAD
2018-07-21csapi: Fix indentaton of data structures inside job classesKitsune Ral
2018-07-20csapi: Rename entities in application-service/Kitsune Ral
The actual change is in API definition files, this is just regeneration.
2018-07-18csapi: third_party_lookup.* and its dependencies in application-service/Kitsune Ral
As per the latest API definitions.
2018-07-18csapi: Doxy-comments thanks to the latest GTADKitsune Ral
2018-07-11csapi: Update to the latest API definitionsKitsune Ral
Presence requires authentication; GetConfigJob; GetLoginFlowsJob; serverName parameter in JoinRoomJob.
2018-07-04lib/csapi: Updated from the latest API definitionsKitsune Ral
2018-07-04Break down event.* into smaller filesKitsune Ral
We now have event.*, roomevent.*, stateevent.* and eventloader.h. If you only use event leaf-classes (such as RoomMemberEvent) you shouldn't notice anything.
2018-07-04Use QStringLiteral() and operator"" _ls() in network jobsKitsune Ral
2018-06-16csapi: Use {{>cjoin}} instead of {{>join,}}; fix a typo breaking update-apiKitsune Ral
2018-06-11gtad.yaml: More concise list joiningKitsune Ral
2018-06-09csapi: Now really fix passing query parametersKitsune Ral
Also: GetContentThumbnailJob (again) requires width and height.
2018-06-08csapi: Fix boolean query parameters incorrectly passedKitsune Ral
2018-06-08csapi: add jobs for keys managementKitsune Ral
This concludes the Great Income of Jobs to libQMatrixClient - all CS API calls are now covered with job classes, yay!
2018-06-08csapi: add jobs for device managementKitsune Ral
Same as for account management jobs, auth objects are modeled as generic QJsonObjects for now.
2018-06-08csapi: Added registration and account management jobsKitsune Ral
Regrettably had to cut corners and use QJsonObject for auth_data.yaml because GTAD 0.6 doesn't properly deal with a combination of properties and additionalProperties in the API description.
2018-06-08csapi: add jobs from rooms.yamlKitsune Ral
Getting a single event (/events), getting the full room state as well as with a specific type/key (/state), getting the list of room members (/members and /joined_members).
2018-06-08gtad.yaml: Update to the released GTAD 0.6Kitsune Ral
variant types now use comma (,) as a delimiter instead of | (because regexes). Also: moved around the `schema` section to be closer to `$ref`.
2018-06-08csapi: added sync filter definitions and jobsKitsune Ral
2018-06-04Make libQMatrixClient buildable outside of QuaternionKitsune Ral
2018-06-03csapi: jobs to setup push-rulesKitsune Ral
2018-06-03csapi: PeekEventsJob, ReportContentJob, presence jobsKitsune Ral
2018-06-03csapi: No need to explicitly #include <QtCore/QStringList>Kitsune Ral
2018-06-03csapi: GetTurnServerJobKitsune Ral
2018-06-03csapi/content-repo.*: jobs return results in data() instead of content() nowKitsune Ral
Because GTAD has been updated to use a different default name for returned properties.
2018-06-03csapi/notifications.*: Use QVariant instead of QJsonObjectKitsune Ral
Thanks to the latest GTAD. QJsonObject wasn't quite correct there.
2018-06-03csapi + converters: Support variant types (using QVariant)Kitsune Ral
This mandated some rearrangement of toJson() overloads and FromJson<> specializations for QVariant* types - instead of variant_converters.h they are now in converters.cpp.
2018-06-03csapi: Updated to the most recent API definitionsKitsune Ral
2018-06-03gtad.yaml: Fixes around defaultValueKitsune Ral
1. defaultValue now preempts Omittable<> 2. Fixed the problem when defaultValue was provided but initializer was empty (a case for int's, bool's etc.)
2018-06-03gtad.yaml: Fallback to QJsonArray no more neededKitsune Ral
...with the latest GTAD
2018-06-03gtad.yaml: Make sure to pass avoidCopy to ref'ed typesKitsune Ral
2018-06-02csapi: Fix adding omittables to a query stringKitsune Ral
2018-06-02GTAD: drop question marks and "true" from attributesKitsune Ral
They lead to an (incorrect) assumption that those attributes are actual binary flags rather than just flags (there's no such thing as avoidCopy=false, avoidCopy should be absent instead).
2018-06-02csapi: Use Omittable<> container instead of intrusive 'omitted' fieldKitsune Ral
Also: use the latest feature of GTAD, +set/+on, to make gtad.yaml more compact.
2018-05-26lib/csapi/: regenerate job classes from the most recent templatesKitsune Ral
The second part to close #208.
2018-05-26lib/csapi/: Don't send parameters that were omittedKitsune Ral
This is important because payloads that include omitted parameters may be malformed. Closes #208 (an example of such malformed payload).
2018-05-06Optimise #includes, eliminate some excess blank lines in lib/csapiKitsune Ral
2018-05-06lib/csapi/*.mustache: Optimise #includes, eliminate some blank linesKitsune Ral