Unfriend via mailbox
This commit is contained in:
parent
9c4f9378ab
commit
9d8433d104
@ -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,18 +591,29 @@ 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) {
|
||||||
removeFromFriendList(curvePublic, function () {
|
store.mailbox.sendTo('UNFRIEND', {
|
||||||
delete channels[channel.id];
|
curvePublic: proxy.curvePublic
|
||||||
emit('UNFRIEND', {
|
}, {
|
||||||
curvePublic: curvePublic,
|
channel: data.notifications,
|
||||||
fromMe: true
|
curvePublic: data.curvePublic
|
||||||
|
}, function (obj) {
|
||||||
|
console.log(obj);
|
||||||
|
if (obj && obj.error) {
|
||||||
|
return void cb(obj);
|
||||||
|
}
|
||||||
|
removeFromFriendList(curvePublic, function () {
|
||||||
|
delete channels[channel.id];
|
||||||
|
emit('UNFRIEND', {
|
||||||
|
curvePublic: curvePublic,
|
||||||
|
fromMe: true
|
||||||
|
});
|
||||||
|
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,16 @@ 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);
|
||||||
|
}
|
||||||
|
cb(true);
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
add: function (ctx, box, data, cb) {
|
add: function (ctx, box, data, cb) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user