aboutsummaryrefslogtreecommitdiff
path: root/lib/identity/definitions/request_email_validation.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/identity/definitions/request_email_validation.h')
-rw-r--r--lib/identity/definitions/request_email_validation.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/lib/identity/definitions/request_email_validation.h b/lib/identity/definitions/request_email_validation.h
index 32c6eaaf..079da953 100644
--- a/lib/identity/definitions/request_email_validation.h
+++ b/lib/identity/definitions/request_email_validation.h
@@ -8,8 +8,6 @@
namespace Quotient {
-// Data structures
-
struct RequestEmailValidation {
/// A unique string generated by the client, and used to identify the
/// validation attempt. It must be a string consisting of the characters
@@ -26,18 +24,32 @@ struct RequestEmailValidation {
/// 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.
+ /// 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.
+ /// 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;
};
template <>
struct JsonObjectConverter<RequestEmailValidation> {
- static void dumpTo(QJsonObject& jo, const RequestEmailValidation& pod);
- static void fillFrom(const QJsonObject& jo, RequestEmailValidation& pod);
+ static void dumpTo(QJsonObject& jo, const RequestEmailValidation& pod)
+ {
+ addParam<>(jo, QStringLiteral("client_secret"), pod.clientSecret);
+ addParam<>(jo, QStringLiteral("email"), pod.email);
+ addParam<>(jo, QStringLiteral("send_attempt"), pod.sendAttempt);
+ addParam<IfNotEmpty>(jo, QStringLiteral("next_link"), pod.nextLink);
+ }
+ static void fillFrom(const QJsonObject& jo, RequestEmailValidation& pod)
+ {
+ fromJson(jo.value("client_secret"_ls), pod.clientSecret);
+ fromJson(jo.value("email"_ls), pod.email);
+ fromJson(jo.value("send_attempt"_ls), pod.sendAttempt);
+ fromJson(jo.value("next_link"_ls), pod.nextLink);
+ }
};
} // namespace Quotient