From d9ff200ff62fb7f5b6b51082dc3979d5454a1bec Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Sat, 25 Aug 2018 22:40:15 +0900 Subject: Update to the recent CS API (watch out for breakage) 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. --- lib/csapi/definitions/public_rooms_response.h | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 lib/csapi/definitions/public_rooms_response.h (limited to 'lib/csapi/definitions/public_rooms_response.h') diff --git a/lib/csapi/definitions/public_rooms_response.h b/lib/csapi/definitions/public_rooms_response.h new file mode 100644 index 00000000..eea4bc5e --- /dev/null +++ b/lib/csapi/definitions/public_rooms_response.h @@ -0,0 +1,72 @@ +/****************************************************************************** + * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN + */ + +#pragma once + +#include "converters.h" + +#include +#include "converters.h" + +namespace QMatrixClient +{ + // Data structures + + struct PublicRoomsChunk + { + /// Aliases of the room. May be empty. + QStringList aliases; + /// The canonical alias of the room, if any. + QString canonicalAlias; + /// The name of the room, if any. + QString name; + /// The number of members joined to the room. + qint64 numJoinedMembers; + /// The ID of the room. + QString roomId; + /// The topic of the room, if any. + QString topic; + /// Whether the room may be viewed by guest users without joining. + bool worldReadable; + /// Whether guest users may join the room and participate in it. + /// If they can, they will be subject to ordinary power level + /// rules like any other user. + bool guestCanJoin; + /// The URL for the room's avatar, if one is set. + QString avatarUrl; + }; + + QJsonObject toJson(const PublicRoomsChunk& pod); + + template <> struct FromJson + { + PublicRoomsChunk operator()(const QJsonValue& jv); + }; + + /// A list of the rooms on the server. + struct PublicRoomsResponse + { + /// A paginated chunk of public rooms. + QVector chunk; + /// A pagination token for the response. The absence of this token + /// means there are no more results to fetch and the client should + /// stop paginating. + QString nextBatch; + /// A pagination token that allows fetching previous results. The + /// absence of this token means there are no results before this + /// batch, i.e. this is the first batch. + QString prevBatch; + /// An estimate on the total number of public rooms, if the + /// server has an estimate. + Omittable totalRoomCountEstimate; + }; + + QJsonObject toJson(const PublicRoomsResponse& pod); + + template <> struct FromJson + { + PublicRoomsResponse operator()(const QJsonValue& jv); + }; + +} // namespace QMatrixClient -- cgit v1.2.3