aboutsummaryrefslogtreecommitdiff
path: root/lib/application-service/definitions
diff options
context:
space:
mode:
Diffstat (limited to 'lib/application-service/definitions')
-rw-r--r--lib/application-service/definitions/location.h11
-rw-r--r--lib/application-service/definitions/protocol.h61
-rw-r--r--lib/application-service/definitions/user.h11
3 files changed, 42 insertions, 41 deletions
diff --git a/lib/application-service/definitions/location.h b/lib/application-service/definitions/location.h
index 77512514..e4c2d096 100644
--- a/lib/application-service/definitions/location.h
+++ b/lib/application-service/definitions/location.h
@@ -8,24 +8,23 @@
#include <QtCore/QJsonObject>
-namespace Quotient
-{
+namespace Quotient {
// Data structures
-struct ThirdPartyLocation
-{
+struct ThirdPartyLocation {
/// An alias for a matrix room.
QString alias;
+
/// The protocol ID that the third party location is a part of.
QString protocol;
+
/// Information used to identify this third party location.
QJsonObject fields;
};
template <>
-struct JsonObjectConverter<ThirdPartyLocation>
-{
+struct JsonObjectConverter<ThirdPartyLocation> {
static void dumpTo(QJsonObject& jo, const ThirdPartyLocation& pod);
static void fillFrom(const QJsonObject& jo, ThirdPartyLocation& pod);
};
diff --git a/lib/application-service/definitions/protocol.h b/lib/application-service/definitions/protocol.h
index ab99264f..ac1e50e2 100644
--- a/lib/application-service/definitions/protocol.h
+++ b/lib/application-service/definitions/protocol.h
@@ -10,77 +10,80 @@
#include <QtCore/QJsonObject>
#include <QtCore/QVector>
-namespace Quotient
-{
+namespace Quotient {
// Data structures
/// Definition of valid values for a field.
-struct FieldType
-{
+struct FieldType {
/// A regular expression for validation of a field's value. This may be
- /// relativelycoarse to verify the value as the application service
- /// providing this protocolmay apply additional validation or filtering.
+ /// relatively coarse to verify the value as the application service
+ /// providing this protocol may apply additional validation or filtering.
QString regexp;
+
/// An placeholder serving as a valid example of the field value.
QString placeholder;
};
template <>
-struct JsonObjectConverter<FieldType>
-{
+struct JsonObjectConverter<FieldType> {
static void dumpTo(QJsonObject& jo, const FieldType& pod);
static void fillFrom(const QJsonObject& jo, FieldType& pod);
};
-struct ProtocolInstance
-{
+struct ProtocolInstance {
/// A human-readable description for the protocol, such as the name.
QString desc;
+
/// An optional content URI representing the protocol. Overrides the one
- /// providedat the higher level Protocol object.
+ /// provided at the higher level Protocol object.
QString icon;
+
/// Preset values for ``fields`` the client may use to search by.
QJsonObject fields;
+
/// A unique identifier across all instances.
QString networkId;
};
template <>
-struct JsonObjectConverter<ProtocolInstance>
-{
+struct JsonObjectConverter<ProtocolInstance> {
static void dumpTo(QJsonObject& jo, const ProtocolInstance& pod);
static void fillFrom(const QJsonObject& jo, ProtocolInstance& pod);
};
-struct ThirdPartyProtocol
-{
- /// Fields which may be used to identify a third party user. These should
- /// beordered to suggest the way that entities may be grouped, where
- /// highergroupings are ordered first. For example, the name of a network
- /// should besearched before the nickname of a user.
+struct ThirdPartyProtocol {
+ /// Fields which may be used to identify a third party user. These should be
+ /// ordered to suggest the way that entities may be grouped, where higher
+ /// groupings are ordered first. For example, the name of a network should
+ /// be searched before the nickname of a user.
QStringList userFields;
+
/// Fields which may be used to identify a third party location. These
- /// should beordered to suggest the way that entities may be grouped, where
- /// highergroupings are ordered first. For example, the name of a network
- /// should besearched before the name of a channel.
+ /// should be ordered to suggest the way that entities may be grouped, where
+ /// higher groupings are ordered first. For example, the name of a network
+ /// should be searched before the name of a channel.
QStringList locationFields;
+
/// A content URI representing an icon for the third party protocol.
QString icon;
+
/// The type definitions for the fields defined in the ``user_fields`` and
/// ``location_fields``. Each entry in those arrays MUST have an entry here.
- /// The``string`` key for this object is field name itself.May be an empty
- /// object if no fields are defined.
+ /// The
+ /// ``string`` key for this object is field name itself.
+ ///
+ /// May be an empty object if no fields are defined.
QHash<QString, FieldType> fieldTypes;
- /// A list of objects representing independent instances of
- /// configuration.For example, multiple networks on IRC if multiple are
- /// provided by thesame application service.
+
+ /// A list of objects representing independent instances of configuration.
+ /// For example, multiple networks on IRC if multiple are provided by the
+ /// same application service.
QVector<ProtocolInstance> instances;
};
template <>
-struct JsonObjectConverter<ThirdPartyProtocol>
-{
+struct JsonObjectConverter<ThirdPartyProtocol> {
static void dumpTo(QJsonObject& jo, const ThirdPartyProtocol& pod);
static void fillFrom(const QJsonObject& jo, ThirdPartyProtocol& pod);
};
diff --git a/lib/application-service/definitions/user.h b/lib/application-service/definitions/user.h
index 34c6829c..0d1984b6 100644
--- a/lib/application-service/definitions/user.h
+++ b/lib/application-service/definitions/user.h
@@ -8,24 +8,23 @@
#include <QtCore/QJsonObject>
-namespace Quotient
-{
+namespace Quotient {
// Data structures
-struct ThirdPartyUser
-{
+struct ThirdPartyUser {
/// A Matrix User ID represting a third party user.
QString userid;
+
/// The protocol ID that the third party location is a part of.
QString protocol;
+
/// Information used to identify this third party location.
QJsonObject fields;
};
template <>
-struct JsonObjectConverter<ThirdPartyUser>
-{
+struct JsonObjectConverter<ThirdPartyUser> {
static void dumpTo(QJsonObject& jo, const ThirdPartyUser& pod);
static void fillFrom(const QJsonObject& jo, ThirdPartyUser& pod);
};