diff options
Diffstat (limited to 'lib/csapi/definitions')
-rw-r--r-- | lib/csapi/definitions/auth_data.h | 7 | ||||
-rw-r--r-- | lib/csapi/definitions/openid_token.h | 8 | ||||
-rw-r--r-- | lib/csapi/definitions/public_rooms_chunk.h | 73 | ||||
-rw-r--r-- | lib/csapi/definitions/public_rooms_response.h | 74 | ||||
-rw-r--r-- | lib/csapi/definitions/push_condition.h | 4 |
5 files changed, 86 insertions, 80 deletions
diff --git a/lib/csapi/definitions/auth_data.h b/lib/csapi/definitions/auth_data.h index e92596d0..a9972323 100644 --- a/lib/csapi/definitions/auth_data.h +++ b/lib/csapi/definitions/auth_data.h @@ -10,7 +10,10 @@ namespace Quotient { /// Used by clients to submit authentication information to the /// interactive-authentication API struct AuthenticationData { - /// The login type that the client is attempting to complete. + /// The authentication type that the client is attempting to complete. + /// May be omitted if `session` is given, and the client is reissuing a + /// request which it believes has been completed out-of-band (for example, + /// via the [fallback mechanism](#fallback)). QString type; /// The value of the session key given by the homeserver. @@ -25,7 +28,7 @@ struct JsonObjectConverter<AuthenticationData> { static void dumpTo(QJsonObject& jo, const AuthenticationData& pod) { fillJson(jo, pod.authInfo); - addParam<>(jo, QStringLiteral("type"), pod.type); + addParam<IfNotEmpty>(jo, QStringLiteral("type"), pod.type); addParam<IfNotEmpty>(jo, QStringLiteral("session"), pod.session); } static void fillFrom(QJsonObject jo, AuthenticationData& pod) diff --git a/lib/csapi/definitions/openid_token.h b/lib/csapi/definitions/openid_token.h index 3c447321..9b026dea 100644 --- a/lib/csapi/definitions/openid_token.h +++ b/lib/csapi/definitions/openid_token.h @@ -8,7 +8,7 @@ namespace Quotient { -struct OpenidToken { +struct OpenIdCredentials { /// An access token the consumer may use to verify the identity of /// the person who generated the token. This is given to the federation /// API `GET /openid/userinfo` to verify the user's identity. @@ -27,8 +27,8 @@ struct OpenidToken { }; template <> -struct JsonObjectConverter<OpenidToken> { - static void dumpTo(QJsonObject& jo, const OpenidToken& pod) +struct JsonObjectConverter<OpenIdCredentials> { + static void dumpTo(QJsonObject& jo, const OpenIdCredentials& pod) { addParam<>(jo, QStringLiteral("access_token"), pod.accessToken); addParam<>(jo, QStringLiteral("token_type"), pod.tokenType); @@ -36,7 +36,7 @@ struct JsonObjectConverter<OpenidToken> { pod.matrixServerName); addParam<>(jo, QStringLiteral("expires_in"), pod.expiresIn); } - static void fillFrom(const QJsonObject& jo, OpenidToken& pod) + static void fillFrom(const QJsonObject& jo, OpenIdCredentials& pod) { fromJson(jo.value("access_token"_ls), pod.accessToken); fromJson(jo.value("token_type"_ls), pod.tokenType); diff --git a/lib/csapi/definitions/public_rooms_chunk.h b/lib/csapi/definitions/public_rooms_chunk.h new file mode 100644 index 00000000..eac68213 --- /dev/null +++ b/lib/csapi/definitions/public_rooms_chunk.h @@ -0,0 +1,73 @@ +/****************************************************************************** + * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN + */ + +#pragma once + +#include "converters.h" + +namespace Quotient { + +struct PublicRoomsChunk { + /// 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. + int 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. + QUrl avatarUrl; + + /// The room's join rule. When not present, the room is assumed to + /// be `public`. + QString joinRule; +}; + +template <> +struct JsonObjectConverter<PublicRoomsChunk> { + static void dumpTo(QJsonObject& jo, const PublicRoomsChunk& pod) + { + addParam<IfNotEmpty>(jo, QStringLiteral("canonical_alias"), + pod.canonicalAlias); + addParam<IfNotEmpty>(jo, QStringLiteral("name"), pod.name); + addParam<>(jo, QStringLiteral("num_joined_members"), + pod.numJoinedMembers); + addParam<>(jo, QStringLiteral("room_id"), pod.roomId); + addParam<IfNotEmpty>(jo, QStringLiteral("topic"), pod.topic); + addParam<>(jo, QStringLiteral("world_readable"), pod.worldReadable); + addParam<>(jo, QStringLiteral("guest_can_join"), pod.guestCanJoin); + addParam<IfNotEmpty>(jo, QStringLiteral("avatar_url"), pod.avatarUrl); + addParam<IfNotEmpty>(jo, QStringLiteral("join_rule"), pod.joinRule); + } + static void fillFrom(const QJsonObject& jo, PublicRoomsChunk& pod) + { + fromJson(jo.value("canonical_alias"_ls), pod.canonicalAlias); + fromJson(jo.value("name"_ls), pod.name); + fromJson(jo.value("num_joined_members"_ls), pod.numJoinedMembers); + fromJson(jo.value("room_id"_ls), pod.roomId); + fromJson(jo.value("topic"_ls), pod.topic); + fromJson(jo.value("world_readable"_ls), pod.worldReadable); + fromJson(jo.value("guest_can_join"_ls), pod.guestCanJoin); + fromJson(jo.value("avatar_url"_ls), pod.avatarUrl); + fromJson(jo.value("join_rule"_ls), pod.joinRule); + } +}; + +} // namespace Quotient diff --git a/lib/csapi/definitions/public_rooms_response.h b/lib/csapi/definitions/public_rooms_response.h index 2938b4ec..ca512280 100644 --- a/lib/csapi/definitions/public_rooms_response.h +++ b/lib/csapi/definitions/public_rooms_response.h @@ -6,81 +6,13 @@ #include "converters.h" -namespace Quotient { - -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. - int 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. - QUrl avatarUrl; - - /// The room's join rule. When not present, the room is assumed to - /// be `public`. Note that rooms with `invite` join rules are not - /// expected here, but rooms with `knock` rules are given their - /// near-public nature. - QString joinRule; -}; - -template <> -struct JsonObjectConverter<PublicRoomsChunk> { - static void dumpTo(QJsonObject& jo, const PublicRoomsChunk& pod) - { - addParam<IfNotEmpty>(jo, QStringLiteral("aliases"), pod.aliases); - addParam<IfNotEmpty>(jo, QStringLiteral("canonical_alias"), - pod.canonicalAlias); - addParam<IfNotEmpty>(jo, QStringLiteral("name"), pod.name); - addParam<>(jo, QStringLiteral("num_joined_members"), - pod.numJoinedMembers); - addParam<>(jo, QStringLiteral("room_id"), pod.roomId); - addParam<IfNotEmpty>(jo, QStringLiteral("topic"), pod.topic); - addParam<>(jo, QStringLiteral("world_readable"), pod.worldReadable); - addParam<>(jo, QStringLiteral("guest_can_join"), pod.guestCanJoin); - addParam<IfNotEmpty>(jo, QStringLiteral("avatar_url"), pod.avatarUrl); - addParam<IfNotEmpty>(jo, QStringLiteral("join_rule"), pod.joinRule); - } - static void fillFrom(const QJsonObject& jo, PublicRoomsChunk& pod) - { - fromJson(jo.value("aliases"_ls), pod.aliases); - fromJson(jo.value("canonical_alias"_ls), pod.canonicalAlias); - fromJson(jo.value("name"_ls), pod.name); - fromJson(jo.value("num_joined_members"_ls), pod.numJoinedMembers); - fromJson(jo.value("room_id"_ls), pod.roomId); - fromJson(jo.value("topic"_ls), pod.topic); - fromJson(jo.value("world_readable"_ls), pod.worldReadable); - fromJson(jo.value("guest_can_join"_ls), pod.guestCanJoin); - fromJson(jo.value("avatar_url"_ls), pod.avatarUrl); - fromJson(jo.value("join_rule"_ls), pod.joinRule); - } -}; +#include "csapi/definitions/public_rooms_chunk.h" +namespace Quotient { /// A list of the rooms on the server. struct PublicRoomsResponse { /// A paginated chunk of public rooms. - QVector<PublicRoomsChunk> chunk; + QVector<QJsonObject> chunk; /// A pagination token for the response. The absence of this token /// means there are no more results to fetch and the client should diff --git a/lib/csapi/definitions/push_condition.h b/lib/csapi/definitions/push_condition.h index ce66d075..6a048ba8 100644 --- a/lib/csapi/definitions/push_condition.h +++ b/lib/csapi/definitions/push_condition.h @@ -24,9 +24,7 @@ struct PushCondition { QString key; /// Required for `event_match` conditions. The glob-style pattern to - /// match against. Patterns with no special glob characters should be - /// treated as having asterisks prepended and appended when testing the - /// condition. + /// match against. QString pattern; /// Required for `room_member_count` conditions. A decimal integer |