Age | Commit message (Collapse) | Author |
|
Store JSON response in BaseJob + tweaks to the generated code
|
|
|
|
|
|
Fixes a compilation warning that Private is a struct in one place and
a class in another.
|
|
|
|
Qt 5.12+ always optimise QRegularExpression on first usage.
|
|
* JSON response is stored internally in BaseJob, rather than passed
around virtual response handlers. This allow to lazily deserialise
parts of the JSON response when the client calls for them instead of
deserialising upon arrival and storing POD pieces. This is
incompatible with the current generated code, so temporarily FTBFS.
* BaseJob::loadFromJson() and BaseJob::takeFromJson() have been added
to facilitate picking parts of the result as described above
in derived job classes.
* BaseJob::jsonData(), BaseJob::jsonItems() and (protected)
BaseJob::reply() for direct access to the response in its various
forms.
* To further eliminate boilerplate code in generated job classes,
a group of *ExpectedKeys() methods has been added - this allows to
reflect the API definition of required response keys in a more
"declarative" way, delegating validation to BaseJob.
* parseReply() and parseJson() pair turns to singular prepareResult().
Thanks to all the changes above, in most cases it will not need
overriding, unlike before.
* BaseJob::Private::parseJson() is introduced, to wrap
QJsonDocument::parseJson() into something less verbose. This serves
a completely different purpose to the former BaseJob::parseJson().
* BaseJob::doCheckReply() takes the place, and the name, of
checkReply().
|
|
What's needed for a thumbnail is normally "scale", not "crop"
(as these are defined in The Spec).
|
|
|
|
operator+() is no more wanted with iterators on associative containers.
|
|
Qt 5.15 deprecates binary JSON format in favour of CBOR now used as
a backend for its JSON classes.
|
|
|
|
All GTAD-related files (gtad.yaml and templates) from now live in their
dedicated gtad/ directory - this helps against removing them
accidentally along with the rest of the generated files. The format
to list generated files in gtad.yaml has changed a bit before
GTAD 0.7 beta2; gtad.yaml in this commit conforms to the new structure.
|
|
parseJsonDocument() will come later.
|
|
Qt 5.15 renamed HTTP2AllowedAttribute to Http2AllowedAttribute,
deprecating the old spelling.
|
|
No functional changes either.
|
|
No functional changes here.
|
|
|
|
|
|
No functional changes.
|
|
That means much more readable templates thanks to GTAD 0.7 in turn using
the upgrade Mustache engine.
|
|
This is to prevent the jobs from several
resolveServer() / setHomeserver() invocations running in parallel.
|
|
|
|
connectToServer() is left for compatibility but deprecated.
|
|
The code is really defensive now, making sure there's exactly one slash
between the base path and the endpoint. It's still very conservative
about the path composition otherwise (no normalisation etc.).
|
|
Fixes #403.
|
|
|
|
Pulled from Quaternion code.
|
|
|
|
This can be handy to pass the replaced status to QML.
|
|
Due to a missing return statement, a retry with auth case led to the job
being finished and pending at the same time, with no good consequences.
|
|
When a message is redacted it has no sender. If it happens to be
in the bulkhead, Quotient tries to promote a read marker over it and
fails on being unable to resolve the author.
|
|
Longer running on RHEL/CentOS 8 leads to crashes that no more occur
with disabled pipelining.
|
|
|
|
This is a Quotient part of #328 fix; QtOlm part is pending.
|
|
May fix #380. Also: remove explicit copying disablers,
the unique_ptr<> member disables copying just fine.
|
|
(Mostly) fixes #397. Fixes #398. If there's a need to reparent the job
to some other object, it should now be done after callApi()/run() call
(not that there were many touch points before that moment, anyway).
Collateral damage: job-starting methods are no more const (but that
didn't belong them anyway, too).
|
|
Also: use 4-arg connect() to make sure lambdas are disconnected
if the connection is gone.
|
|
|
|
A part of the fix for #398.
|
|
|
|
The method grew large and a bit unwieldy over the years.
|
|
|
|
Fixes #394.
|
|
|
|
|
|
fixing msc2432
|
|
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
|
|
|
|
|