findOrCreateById instead of private-specific method

Anyway, findOrCreateById with no type didn't succeed, because the
conversation didn't validate.

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-07-25 10:33:28 -07:00
parent ef3431af1b
commit 3e8b34f3d0
3 changed files with 11 additions and 22 deletions

View file

@ -158,7 +158,7 @@
return;
}
return ConversationController.findOrCreatePrivateById(id).then(function(conversation) {
return ConversationController.findOrCreateById(id, 'private').then(function(conversation) {
return new Promise(function(resolve, reject) {
conversation.save({
name: details.name,
@ -174,7 +174,7 @@
var details = ev.groupDetails;
var id = details.id;
return ConversationController.findOrCreateById(id).then(function(conversation) {
return ConversationController.findOrCreateById(id, 'group').then(function(conversation) {
var updates = {
name: details.name,
members: details.members,
@ -311,8 +311,10 @@
}
var envelope = ev.proto;
var message = initIncomingMessage(envelope.source, envelope.timestamp.toNumber());
message.saveErrors(e).then(function() {
ConversationController.findOrCreatePrivateById(message.get('conversationId')).then(function(conversation) {
var id = message.get('conversationId');
ConversationController.findOrCreateById(id, 'private').then(function(conversation) {
conversation.set({
active_at: Date.now(),
unreadCount: conversation.get('unreadCount') + 1
@ -379,7 +381,7 @@
console.log('got verified sync for', number, state,
ev.viaContactSync ? 'via contact sync' : '');
return ConversationController.findOrCreatePrivateById(number).then(function(contact) {
return ConversationController.findOrCreateById(number, 'private').then(function(contact) {
var options = {
viaSyncMessage: true,
viaContactSync: ev.viaContactSync,

View file

@ -86,24 +86,10 @@
var conversation = conversations.add(attrs, {merge: true});
return conversation;
},
findOrCreatePrivateById: function(id) {
findOrCreateById: function(id, type) {
var conversation = conversations.add({
id: id,
type: 'private'
});
return new Promise(function(resolve, reject) {
conversation.fetch().then(function() {
resolve(conversation);
}, function() {
conversation.save().then(function() {
resolve(conversation);
}, reject);
});
});
},
findOrCreateById: function(id) {
var conversation = conversations.add({
id: id
type: type
});
return new Promise(function(resolve, reject) {
conversation.fetch().then(function() {

View file

@ -97,8 +97,9 @@
createConversation: function() {
var conversation = this.new_contact_view.model;
if (this.new_contact_view.model.isValid()) {
ConversationController.findOrCreatePrivateById(
this.new_contact_view.model.id
ConversationController.findOrCreateById(
this.new_contact_view.model.id,
'private'
).then(function(conversation) {
this.trigger('open', conversation);
this.initNewContact();