aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/administrative_contact.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/csapi/administrative_contact.cpp')
-rw-r--r--lib/csapi/administrative_contact.cpp75
1 files changed, 67 insertions, 8 deletions
diff --git a/lib/csapi/administrative_contact.cpp b/lib/csapi/administrative_contact.cpp
index 520e6f58..f62002a6 100644
--- a/lib/csapi/administrative_contact.cpp
+++ b/lib/csapi/administrative_contact.cpp
@@ -25,6 +25,10 @@ namespace QMatrixClient
fromJson<QString>(jo.value("medium"_ls));
result.address =
fromJson<QString>(jo.value("address"_ls));
+ result.validatedAt =
+ fromJson<qint64>(jo.value("validated_at"_ls));
+ result.addedAt =
+ fromJson<qint64>(jo.value("added_at"_ls));
return result;
}
@@ -92,31 +96,86 @@ Post3PIDsJob::Post3PIDsJob(const ThreePidCredentials& threePidCreds, bool bind)
setRequestData(_data);
}
-QUrl RequestTokenTo3PIDEmailJob::makeRequestUrl(QUrl baseUrl)
+static const auto Delete3pidFromAccountJobName = QStringLiteral("Delete3pidFromAccountJob");
+
+Delete3pidFromAccountJob::Delete3pidFromAccountJob(const QString& medium, const QString& address)
+ : BaseJob(HttpVerb::Post, Delete3pidFromAccountJobName,
+ basePath % "/account/3pid/delete")
{
- return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/account/3pid/email/requestToken");
+ QJsonObject _data;
+ addParam<>(_data, QStringLiteral("medium"), medium);
+ addParam<>(_data, QStringLiteral("address"), address);
+ setRequestData(_data);
}
+class RequestTokenTo3PIDEmailJob::Private
+{
+ public:
+ Sid data;
+};
+
static const auto RequestTokenTo3PIDEmailJobName = QStringLiteral("RequestTokenTo3PIDEmailJob");
-RequestTokenTo3PIDEmailJob::RequestTokenTo3PIDEmailJob()
+RequestTokenTo3PIDEmailJob::RequestTokenTo3PIDEmailJob(const QString& clientSecret, const QString& email, int sendAttempt, const QString& idServer, const QString& nextLink)
: BaseJob(HttpVerb::Post, RequestTokenTo3PIDEmailJobName,
basePath % "/account/3pid/email/requestToken", false)
+ , d(new Private)
+{
+ QJsonObject _data;
+ addParam<>(_data, QStringLiteral("client_secret"), clientSecret);
+ addParam<>(_data, QStringLiteral("email"), email);
+ addParam<>(_data, QStringLiteral("send_attempt"), sendAttempt);
+ addParam<IfNotEmpty>(_data, QStringLiteral("next_link"), nextLink);
+ addParam<>(_data, QStringLiteral("id_server"), idServer);
+ setRequestData(_data);
+}
+
+RequestTokenTo3PIDEmailJob::~RequestTokenTo3PIDEmailJob() = default;
+
+const Sid& RequestTokenTo3PIDEmailJob::data() const
{
+ return d->data;
}
-QUrl RequestTokenTo3PIDMSISDNJob::makeRequestUrl(QUrl baseUrl)
+BaseJob::Status RequestTokenTo3PIDEmailJob::parseJson(const QJsonDocument& data)
{
- return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/account/3pid/msisdn/requestToken");
+ d->data = fromJson<Sid>(data);
+ return Success;
}
+class RequestTokenTo3PIDMSISDNJob::Private
+{
+ public:
+ Sid data;
+};
+
static const auto RequestTokenTo3PIDMSISDNJobName = QStringLiteral("RequestTokenTo3PIDMSISDNJob");
-RequestTokenTo3PIDMSISDNJob::RequestTokenTo3PIDMSISDNJob()
+RequestTokenTo3PIDMSISDNJob::RequestTokenTo3PIDMSISDNJob(const QString& clientSecret, const QString& country, const QString& phoneNumber, int sendAttempt, const QString& idServer, const QString& nextLink)
: BaseJob(HttpVerb::Post, RequestTokenTo3PIDMSISDNJobName,
basePath % "/account/3pid/msisdn/requestToken", false)
+ , d(new Private)
+{
+ QJsonObject _data;
+ addParam<>(_data, QStringLiteral("client_secret"), clientSecret);
+ addParam<>(_data, QStringLiteral("country"), country);
+ addParam<>(_data, QStringLiteral("phone_number"), phoneNumber);
+ addParam<>(_data, QStringLiteral("send_attempt"), sendAttempt);
+ addParam<IfNotEmpty>(_data, QStringLiteral("next_link"), nextLink);
+ addParam<>(_data, QStringLiteral("id_server"), idServer);
+ setRequestData(_data);
+}
+
+RequestTokenTo3PIDMSISDNJob::~RequestTokenTo3PIDMSISDNJob() = default;
+
+const Sid& RequestTokenTo3PIDMSISDNJob::data() const
{
+ return d->data;
+}
+
+BaseJob::Status RequestTokenTo3PIDMSISDNJob::parseJson(const QJsonDocument& data)
+{
+ d->data = fromJson<Sid>(data);
+ return Success;
}