File: keys.cpp

package info (click to toggle)
libquotient 0.9.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,588 kB
  • sloc: xml: 39,103; cpp: 25,226; sh: 97; makefile: 10
file content (57 lines) | stat: -rw-r--r-- 2,247 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN

#include "keys.h"

using namespace Quotient;

UploadKeysJob::UploadKeysJob(const std::optional<DeviceKeys>& deviceKeys,
                             const OneTimeKeys& oneTimeKeys, const OneTimeKeys& fallbackKeys)
    : BaseJob(HttpVerb::Post, u"UploadKeysJob"_s, makePath("/_matrix/client/v3", "/keys/upload"))
{
    QJsonObject _dataJson;
    addParam<IfNotEmpty>(_dataJson, "device_keys"_L1, deviceKeys);
    addParam<IfNotEmpty>(_dataJson, "one_time_keys"_L1, oneTimeKeys);
    addParam<IfNotEmpty>(_dataJson, "fallback_keys"_L1, fallbackKeys);
    setRequestData({ _dataJson });
    addExpectedKey(u"one_time_key_counts"_s);
}

QueryKeysJob::QueryKeysJob(const QHash<UserId, QStringList>& deviceKeys, std::optional<int> timeout)
    : BaseJob(HttpVerb::Post, u"QueryKeysJob"_s, makePath("/_matrix/client/v3", "/keys/query"))
{
    QJsonObject _dataJson;
    addParam<IfNotEmpty>(_dataJson, "timeout"_L1, timeout);
    addParam(_dataJson, "device_keys"_L1, deviceKeys);
    setRequestData({ _dataJson });
}

ClaimKeysJob::ClaimKeysJob(const QHash<UserId, QHash<QString, QString>>& oneTimeKeys,
                           std::optional<int> timeout)
    : BaseJob(HttpVerb::Post, u"ClaimKeysJob"_s, makePath("/_matrix/client/v3", "/keys/claim"))
{
    QJsonObject _dataJson;
    addParam<IfNotEmpty>(_dataJson, "timeout"_L1, timeout);
    addParam(_dataJson, "one_time_keys"_L1, oneTimeKeys);
    setRequestData({ _dataJson });
    addExpectedKey(u"one_time_keys"_s);
}

auto queryToGetKeysChanges(const QString& from, const QString& to)
{
    QUrlQuery _q;
    addParam(_q, u"from"_s, from);
    addParam(_q, u"to"_s, to);
    return _q;
}

QUrl GetKeysChangesJob::makeRequestUrl(const HomeserverData& hsData, const QString& from,
                                       const QString& to)
{
    return BaseJob::makeRequestUrl(hsData, makePath("/_matrix/client/v3", "/keys/changes"),
                                   queryToGetKeysChanges(from, to));
}

GetKeysChangesJob::GetKeysChangesJob(const QString& from, const QString& to)
    : BaseJob(HttpVerb::Get, u"GetKeysChangesJob"_s,
              makePath("/_matrix/client/v3", "/keys/changes"), queryToGetKeysChanges(from, to))
{}