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) {
|
fetchMessages: function(options) {
|
||||||
options = options || {};
|
return this.messageCollection.fetchConversation(this.id, 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,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
archive: function() {
|
archive: function() {
|
||||||
|
@ -187,6 +176,17 @@
|
||||||
only: number
|
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
|
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
|
collection : this.conversations
|
||||||
});
|
});
|
||||||
|
|
||||||
this.conversations.fetch({
|
this.conversations.fetchActive({reset: true}).then(function() {
|
||||||
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() {
|
|
||||||
if (this.conversations.length) {
|
if (this.conversations.length) {
|
||||||
this.conversations.at(0).trigger('render');
|
this.conversations.at(0).trigger('render');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue