Move index querying logic to /models
This commit is contained in:
parent
6cbde7894a
commit
cfd4ccc803
3 changed files with 29 additions and 21 deletions
|
@ -87,18 +87,7 @@
|
|||
},
|
||||
|
||||
fetchMessages: function(options) {
|
||||
options = options || {};
|
||||
options.index = {
|
||||
// 'conversation' index on conversationId
|
||||
// WHERE conversationId = this.id ORDER received_at DESC
|
||||
name : 'conversation',
|
||||
lower : [this.id],
|
||||
upper : [this.id, Number.MAX_VALUE],
|
||||
order : 'desc'
|
||||
};
|
||||
return this.messageCollection.fetch(options);
|
||||
// TODO pagination/infinite scroll
|
||||
// limit: 10, offset: page*10,
|
||||
return this.messageCollection.fetchConversation(this.id, options);
|
||||
},
|
||||
|
||||
archive: function() {
|
||||
|
@ -187,6 +176,17 @@
|
|||
only: number
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
fetchActive: function(options) {
|
||||
return this.fetch(_.extend(options, {
|
||||
index: {
|
||||
name: 'inbox', // 'inbox' index on active_at
|
||||
order: 'desc' // ORDER timestamp DESC
|
||||
}
|
||||
// TODO pagination/infinite scroll
|
||||
// limit: 10, offset: page*10,
|
||||
}));
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
|
|
@ -57,6 +57,22 @@
|
|||
only: timestamp
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
fetchConversation: function(conversationId, options) {
|
||||
options = options || {};
|
||||
options.index = {
|
||||
// 'conversation' index on [conversationId, received_at]
|
||||
name : 'conversation',
|
||||
lower : [conversationId],
|
||||
upper : [conversationId, Number.MAX_VALUE],
|
||||
order : 'desc'
|
||||
// SELECT messages WHERE conversationId = this.id ORDER
|
||||
// received_at DESC
|
||||
};
|
||||
// TODO pagination/infinite scroll
|
||||
// limit: 10, offset: page*10,
|
||||
return this.fetch(options);
|
||||
}
|
||||
});
|
||||
})()
|
||||
|
|
|
@ -32,15 +32,7 @@
|
|||
collection : this.conversations
|
||||
});
|
||||
|
||||
this.conversations.fetch({
|
||||
index: {
|
||||
name: 'inbox', // 'inbox' index on active_at
|
||||
order: 'desc' // ORDER timestamp DESC
|
||||
},
|
||||
reset: true
|
||||
// TODO pagination/infinite scroll
|
||||
// limit: 10, offset: page*10,
|
||||
}).then(function() {
|
||||
this.conversations.fetchActive({reset: true}).then(function() {
|
||||
if (this.conversations.length) {
|
||||
this.conversations.at(0).trigger('render');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue