diff options
Diffstat (limited to 'lib/csapi/administrative_contact.cpp')
-rw-r--r-- | lib/csapi/administrative_contact.cpp | 75 |
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; } |