Add an interface for MatrixClientCreds

and make MatrixClientPeg functions use it consistently
This commit is contained in:
David Baker 2016-08-03 10:46:42 +01:00
parent cf7e7d65c8
commit d9a7d50a03
3 changed files with 25 additions and 11 deletions

View file

@ -31,10 +31,7 @@ import dis from './dispatcher';
function setLoggedIn(credentials) { function setLoggedIn(credentials) {
credentials.guest = Boolean(credentials.guest); credentials.guest = Boolean(credentials.guest);
console.log("onLoggedIn => %s (guest=%s)", credentials.userId, credentials.guest); console.log("onLoggedIn => %s (guest=%s)", credentials.userId, credentials.guest);
MatrixClientPeg.replaceUsingAccessToken( MatrixClientPeg.replaceUsingCreds(credentials);
credentials.homeserverUrl, credentials.identityServerUrl,
credentials.userId, credentials.accessToken, credentials.guest
);
dis.dispatch({action: 'on_logged_in'}); dis.dispatch({action: 'on_logged_in'});

View file

@ -31,6 +31,14 @@ function deviceId() {
return id; return id;
} }
interface MatrixClientCreds {
homeserverUrl: string,
identityServerUrl: string,
userId: string,
accessToken: string,
guest: boolean,
}
/** /**
* Wrapper object for handling the js-sdk Matrix Client object in the react-sdk * Wrapper object for handling the js-sdk Matrix Client object in the react-sdk
* Handles the creation/initialisation of client objects. * Handles the creation/initialisation of client objects.
@ -70,8 +78,14 @@ class MatrixClientPeg {
* Replace this MatrixClientPeg's client with a client instance that has * Replace this MatrixClientPeg's client with a client instance that has
* Home Server / Identity Server URLs and active credentials * Home Server / Identity Server URLs and active credentials
*/ */
replaceUsingAccessToken(hs_url, is_url, user_id, access_token, isGuest) { replaceUsingCreds(creds: MatrixClientCreds) {
this._replaceClient(hs_url, is_url, user_id, access_token, isGuest); this._replaceClient(
creds.homeserverUrl,
creds.identityServerUrl,
creds.userId,
creds.accessToken,
creds.guest,
);
} }
_replaceClient(hs_url, is_url, user_id, access_token, isGuest) { _replaceClient(hs_url, is_url, user_id, access_token, isGuest) {
@ -103,7 +117,7 @@ class MatrixClientPeg {
} }
} }
getCredentials() { getCredentials(): MatrixClientCreds {
return { return {
homeserverUrl: this.matrixClient.baseUrl, homeserverUrl: this.matrixClient.baseUrl,
identityServerUrl: this.matrixClient.idBaseUrl, identityServerUrl: this.matrixClient.idBaseUrl,

View file

@ -340,10 +340,13 @@ module.exports = React.createClass({
var client = MatrixClientPeg.get(); var client = MatrixClientPeg.get();
client.loginWithToken(payload.params.loginToken).done(function(data) { client.loginWithToken(payload.params.loginToken).done(function(data) {
MatrixClientPeg.replaceUsingAccessToken( MatrixClientPeg.replaceUsingCreds({
client.getHomeserverUrl(), client.getIdentityServerUrl(), homeserverUrl: client.getHomeserverUrl(),
data.user_id, data.access_token identityServerUrl: client.getIdentityServerUrl(),
); userId: data.user_id,
accessToken: data.access_token,
guest: false,
});
self.setState({ self.setState({
screen: undefined, screen: undefined,
logged_in: true logged_in: true