use promise for setAuthToken so we only continue after the auth token has been set

This commit is contained in:
Sean Yesmunt 2018-11-30 12:57:12 -05:00
parent b773badef1
commit 46b47c3f8f

View file

@ -34,27 +34,34 @@ autoUpdater.logger = remote.require('electron-log');
// We need to override Lbryio for getting/setting the authToken // We need to override Lbryio for getting/setting the authToken
// We interect with ipcRenderer to get the auth key from a users keyring // We interect with ipcRenderer to get the auth key from a users keyring
// We keep a local variable for authToken beacuse `ipcRenderer.send` does not
// contain a response, so there is no way to know when it's been set
let authToken; let authToken;
Lbryio.setOverride('setAuthToken', status => { Lbryio.setOverride(
Lbryio.call( 'setAuthToken',
'user', status =>
'new', new Promise(resolve => {
{ Lbryio.call(
auth_token: '', 'user',
language: 'en', 'new',
app_id: status.installation_id, {
}, auth_token: '',
'post' language: 'en',
).then(response => { app_id: status.installation_id,
if (!response.auth_token) { },
throw new Error(__('auth_token is missing from response')); 'post'
} ).then(response => {
if (!response.auth_token) {
throw new Error(__('auth_token is missing from response'));
}
const newAuthToken = response.auth_token; const newAuthToken = response.auth_token;
authToken = newAuthToken; authToken = newAuthToken;
ipcRenderer.send('set-auth-token', authToken); ipcRenderer.send('set-auth-token', authToken);
}); resolve();
}); });
})
);
Lbryio.setOverride( Lbryio.setOverride(
'getAuthToken', 'getAuthToken',