From 715db8920496e58912a528862f7e7a5789b2961b Mon Sep 17 00:00:00 2001 From: Mark Haines Date: Mon, 20 Jul 2015 13:19:47 +0100 Subject: [PATCH] Move all the calls to createClient inside the MatrixClientPeg --- src/MatrixClientPeg.js | 40 ++++++++++++++++++++------- src/controllers/templates/Login.js | 28 ++++--------------- src/controllers/templates/Register.js | 17 ++---------- 3 files changed, 39 insertions(+), 46 deletions(-) diff --git a/src/MatrixClientPeg.js b/src/MatrixClientPeg.js index 0b6c26496f..87e6af08ce 100644 --- a/src/MatrixClientPeg.js +++ b/src/MatrixClientPeg.js @@ -22,18 +22,25 @@ var Matrix = require("matrix-js-sdk"); var matrixClient = null; var localStorage = window.localStorage; + +function createClient(hs_url, is_url, user_id, access_token) { + var opts = { + baseUrl: hs_url, + idBaseUrl: is_url, + accessToken: access_token, + userId: user_id + }; + + matrixClient = Matrix.createClient(opts); +} + if (localStorage) { var hs_url = localStorage.getItem("mx_hs_url"); var is_url = localStorage.getItem("mx_is_url") || 'https://matrix.org'; var access_token = localStorage.getItem("mx_access_token"); var user_id = localStorage.getItem("mx_user_id"); if (access_token && user_id && hs_url) { - matrixClient = Matrix.createClient({ - baseUrl: hs_url, - idBaseUrl: is_url, - accessToken: access_token, - userId: user_id - }); + matrixClient = createClient(hs_url, is_url, user_id, access_token); } } @@ -42,15 +49,28 @@ module.exports = { return matrixClient; }, - replace: function(cli) { - matrixClient = cli; - }, - replaceUsingUrls: function(hs_url, is_url) { matrixClient = Matrix.createClient({ baseUrl: hs_url, idBaseUrl: is_url }); } + + replaceUsingAccessToken: function(hs_url, is_url, user_id, access_token) { + matrixClient = createClient(hs_url, is_url, user_id, access_token); + if (localStorage) { + try { + localStorage.clear(); + localStorage.setItem("mx_hs_url", hs_url); + localStorage.setItem("mx_is_url", is_url); + localStorage.setItem("mx_user_id", user_id); + localStorage.setItem("mx_access_token", access_token); + } catch (e) { + console.warn("Error using local storage: can't persist session!"); + } + } else { + console.warn("No local storage available: can't persist session!"); + } + } }; diff --git a/src/controllers/templates/Login.js b/src/controllers/templates/Login.js index 276692719d..135b64337d 100644 --- a/src/controllers/templates/Login.js +++ b/src/controllers/templates/Login.js @@ -75,29 +75,13 @@ module.exports = { 'user': formVals.username, 'password': formVals.password }).done(function(data) { - // XXX: we assume this means we're logged in, but there could be a next stage - MatrixClientPeg.replace(Matrix.createClient({ - baseUrl: self.state.hs_url, - idBaseUrl: self.state.is_url, - userId: data.user_id, - accessToken: data.access_token + MatrixClientPeg.replaceUsingAccessToken( + this.state.hs_url, this.state.is_url, + data.user_id, data.access_token + ); })); - var localStorage = window.localStorage; - if (localStorage) { - try { - localStorage.clear(); - localStorage.setItem("mx_hs_url", self.state.hs_url); - localStorage.setItem("mx_is_url", self.state.is_url); - localStorage.setItem("mx_user_id", data.user_id); - localStorage.setItem("mx_access_token", data.access_token); - } catch (e) { - console.warn("Error using local storage: can't persist session!"); - } - } else { - console.warn("No local storage available: can't persist session!"); - } - if (self.props.onLoggedIn) { - self.props.onLoggedIn(); + if (that.props.onLoggedIn) { + that.props.onLoggedIn(); } }, function(error) { self.setStep("stage_m.login.password"); diff --git a/src/controllers/templates/Register.js b/src/controllers/templates/Register.js index 89a3872dce..faff4c66fc 100644 --- a/src/controllers/templates/Register.js +++ b/src/controllers/templates/Register.js @@ -259,20 +259,9 @@ module.exports = { }, onRegistered: function(user_id, access_token) { - MatrixClientPeg.replace(Matrix.createClient({ - baseUrl: this.state.hs_url, - idBaseUrl: this.state.is_url, - userId: user_id, - accessToken: access_token - })); - var localStorage = window.localStorage; - if (localStorage) { - localStorage.setItem("mx_hs_url", this.state.hs_url); - localStorage.setItem("mx_user_id", user_id); - localStorage.setItem("mx_access_token", access_token); - } else { - console.warn("No local storage available: can't persist session!"); - } + MatrixClientPeg.replaceUsingAccessToken( + this.state.hs_url, this.state.is_url, user_id, access_token + ); if (this.props.onLoggedIn) { this.props.onLoggedIn(); }