diff --git a/include/MatrixClient.h b/include/MatrixClient.h
index cf6a94e5..9d3b837b 100644
--- a/include/MatrixClient.h
+++ b/include/MatrixClient.h
@@ -38,7 +38,7 @@ public:
void sync();
void sendTextMessage(const QString &roomid, const QString &msg);
void login(const QString &username, const QString &password);
- void registerUser(const QString &username, const QString &password);
+ void registerUser(const QString &username, const QString &password, const QString &server);
void versions();
inline QString getHomeServer();
@@ -53,11 +53,11 @@ public slots:
inline void setNextBatchToken(const QString &next_batch);
signals:
- // Emitted after a error during the login.
void loginError(const QString &error);
+ void registerError(const QString &error);
- // Emitted after succesfull user login. A new access token is returned by the server.
void loginSuccess(const QString &userid, const QString &homeserver, const QString &token);
+ void registerSuccess(const QString &userid, const QString &homeserver, const QString &token);
// Returned profile data for the user's account.
void getOwnProfileResponse(const QUrl &avatar_url, const QString &display_name);
diff --git a/include/Register.h b/include/Register.h
new file mode 100644
index 00000000..2233ab6a
--- /dev/null
+++ b/include/Register.h
@@ -0,0 +1,81 @@
+/*
+ * nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef REGISTER_H
+#define REGISTER_H
+
+#include <QJsonDocument>
+
+#include "Deserializable.h"
+
+class RegisterRequest
+{
+public:
+ RegisterRequest();
+ RegisterRequest(const QString &username, const QString &password);
+
+ QByteArray serialize();
+
+ inline void setPassword(QString password);
+ inline void setUser(QString username);
+
+private:
+ QString user_;
+ QString password_;
+};
+
+inline void RegisterRequest::setPassword(QString password)
+{
+ password_ = password;
+}
+
+inline void RegisterRequest::setUser(QString username)
+{
+ user_ = username;
+}
+
+class RegisterResponse : public Deserializable
+{
+public:
+ void deserialize(const QJsonDocument &data) throw(DeserializationException) override;
+
+ inline QString getAccessToken();
+ inline QString getHomeServer();
+ inline QString getUserId();
+
+private:
+ QString access_token_;
+ QString home_server_;
+ QString user_id_;
+};
+
+inline QString RegisterResponse::getAccessToken()
+{
+ return access_token_;
+}
+
+inline QString RegisterResponse::getHomeServer()
+{
+ return home_server_;
+}
+
+inline QString RegisterResponse::getUserId()
+{
+ return user_id_;
+}
+
+#endif // REGISTER_H
|