Wait until tables are created before queueing sync

This commit is contained in:
Ben Gotow 2016-07-14 19:32:13 -07:00
parent 08c7ca8b0d
commit 13879db9c8
2 changed files with 8 additions and 4 deletions

View file

@ -6,6 +6,7 @@ const OAuth2 = google.auth.OAuth2;
const Serialization = require('../serialization'); const Serialization = require('../serialization');
const { const {
IMAPConnection, IMAPConnection,
PubsubConnector,
DatabaseConnector, DatabaseConnector,
SyncPolicy, SyncPolicy,
Provider, Provider,
@ -70,9 +71,13 @@ const buildAccountWith = ({name, email, provider, settings, credentials}) => {
return account.save().then((saved) => return account.save().then((saved) =>
AccountToken.create({accountId: saved.id}).then((token) => AccountToken.create({accountId: saved.id}).then((token) =>
DatabaseConnector.ensureAccountDatabase(saved.id).thenReturn({ DatabaseConnector.ensureAccountDatabase(saved.id).then(() => {
account: saved, PubsubConnector.broadcastClient().lpushAsync('accounts:unclaimed', saved.id);
token: token,
return Promise.resolve({
account: saved,
token: token,
});
}) })
) )
); );

View file

@ -4,7 +4,6 @@ const MessageTypes = require('./message-types')
module.exports = (db, sequelize) => { module.exports = (db, sequelize) => {
sequelize.addHook("afterCreate", ({dataValues, $modelOptions}) => { sequelize.addHook("afterCreate", ({dataValues, $modelOptions}) => {
if ($modelOptions.name.singular === 'account') { if ($modelOptions.name.singular === 'account') {
PubsubConnector.broadcastClient().lpushAsync('accounts:unclaimed', dataValues.id);
PubsubConnector.notifyAccount(dataValues.id, { PubsubConnector.notifyAccount(dataValues.id, {
type: MessageTypes.ACCOUNT_CREATED, type: MessageTypes.ACCOUNT_CREATED,
}); });