Merge branch 'unfriend' into staging

pull/1/head
yflory 6 years ago
commit 728c2716b4

@ -564,7 +564,8 @@ define([
onDirectMessage(msg, sender); onDirectMessage(msg, sender);
}); });
var removeFriend = function (curvePublic, cb) { var removeFriend = function (curvePublic, _cb) {
var cb = Util.once(_cb);
if (typeof(cb) !== 'function') { throw new Error('NO_CALLBACK'); } if (typeof(cb) !== 'function') { throw new Error('NO_CALLBACK'); }
var data = getFriend(proxy, curvePublic); var data = getFriend(proxy, curvePublic);
@ -590,7 +591,17 @@ define([
var cryptMsg = channel.encrypt(msgStr); var cryptMsg = channel.encrypt(msgStr);
try { try {
channel.wc.bcast(cryptMsg).then(function () { if (store.mailbox && data.curvePublic && data.notifications) {
store.mailbox.sendTo('UNFRIEND', {
curvePublic: proxy.curvePublic
}, {
channel: data.notifications,
curvePublic: data.curvePublic
}, function (obj) {
console.log(obj);
if (obj && obj.error) {
return void cb(obj);
}
removeFromFriendList(curvePublic, function () { removeFromFriendList(curvePublic, function () {
delete channels[channel.id]; delete channels[channel.id];
emit('UNFRIEND', { emit('UNFRIEND', {
@ -599,9 +610,10 @@ define([
}); });
cb(); cb();
}); });
}, function (err) { });
}
channel.wc.bcast(cryptMsg).then(function () {}, function (err) {
console.error(err); console.error(err);
cb({error: err});
}); });
} catch (e) { } catch (e) {
cb({error: e}); cb({error: e});

@ -132,6 +132,17 @@ define([
} }
}; };
handlers['UNFRIEND'] = function (ctx, box, data, cb) {
var curve = data.msg.content.curvePublic;
var friend = Messaging.getFriend(ctx.store.proxy, curve);
if (!friend) { return void cb(true); }
delete ctx.store.proxy.friends[curve];
if (ctx.store.messenger) {
ctx.store.messenger.onFriendRemoved(curve, friend.channel);
}
ctx.updateMetadata();
cb(true);
};
return { return {
add: function (ctx, box, data, cb) { add: function (ctx, box, data, cb) {

Loading…
Cancel
Save