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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
#pragma once
#include <Quotient/converters.h>
namespace Quotient {
struct QUOTIENT_API EmailValidationData {
//! A unique string generated by the client, and used to identify the
//! validation attempt. It must be a string consisting of the characters
//! `[0-9a-zA-Z.=_-]`. Its length must not exceed 255 characters and it
//! must not be empty.
QString clientSecret;
//! The email address to validate.
QString email;
//! The server will only send an email if the `send_attempt`
//! is a number greater than the most recent one which it has seen,
//! scoped to that `email` + `client_secret` pair. This is to
//! avoid repeatedly sending the same email in the case of request
//! retries between the POSTing user and the identity server.
//! The client should increment this value if they desire a new
//! email (e.g. a reminder) to be sent. If they do not, the server
//! should respond with success but not resend the email.
int sendAttempt;
//! Optional. When the validation is completed, the identity server will
//! redirect the user to this URL. This option is ignored when submitting
//! 3PID validation information through a POST request.
QString nextLink{};
//! The hostname of the identity server to communicate with. May optionally
//! include a port. This parameter is ignored when the homeserver handles
//! 3PID verification.
//!
//! This parameter is deprecated with a plan to be removed in a future specification
//! version for `/account/password` and `/register` requests.
QString idServer{};
//! An access token previously registered with the identity server. Servers
//! can treat this as optional to distinguish between r0.5-compatible clients
//! and this specification version.
//!
//! Required if an `id_server` is supplied.
QString idAccessToken{};
};
template <>
struct JsonObjectConverter<EmailValidationData> {
static void dumpTo(QJsonObject& jo, const EmailValidationData& pod)
{
addParam(jo, "client_secret"_L1, pod.clientSecret);
addParam(jo, "email"_L1, pod.email);
addParam(jo, "send_attempt"_L1, pod.sendAttempt);
addParam<IfNotEmpty>(jo, "next_link"_L1, pod.nextLink);
addParam<IfNotEmpty>(jo, "id_server"_L1, pod.idServer);
addParam<IfNotEmpty>(jo, "id_access_token"_L1, pod.idAccessToken);
}
static void fillFrom(const QJsonObject& jo, EmailValidationData& pod)
{
fillFromJson(jo.value("client_secret"_L1), pod.clientSecret);
fillFromJson(jo.value("email"_L1), pod.email);
fillFromJson(jo.value("send_attempt"_L1), pod.sendAttempt);
fillFromJson(jo.value("next_link"_L1), pod.nextLink);
fillFromJson(jo.value("id_server"_L1), pod.idServer);
fillFromJson(jo.value("id_access_token"_L1), pod.idAccessToken);
}
};
} // namespace Quotient
|