Move index querying logic to /models

This commit is contained in:
lilia 2014-12-19 12:55:29 -08:00
parent 6cbde7894a
commit cfd4ccc803
3 changed files with 29 additions and 21 deletions

View file

@ -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,
}));
}
});
})();

View file

@ -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);
}
});
})()

View file

@ -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');
}