Browse Source

fix forward

bugfix/timeout-logging
Evan Feenstra 5 years ago
parent
commit
b293ca6b4f
  1. 3
      api/controllers/chatTribes.ts
  2. 4
      api/network/receive.ts
  3. 6
      api/network/send.ts
  4. 3
      dist/api/controllers/chatTribes.js
  5. 2
      dist/api/controllers/chatTribes.js.map
  6. 4
      dist/api/network/receive.js
  7. 2
      dist/api/network/receive.js.map
  8. 8
      dist/api/network/send.js
  9. 2
      dist/api/network/send.js.map

3
api/controllers/chatTribes.ts

@ -198,10 +198,11 @@ async function replayChatHistory(chat, contact) {
msg = await decryptMessage(msg, chat) msg = await decryptMessage(msg, chat)
const data = await personalizeMessage(msg, contact, true) const data = await personalizeMessage(msg, contact, true)
const mqttTopic = `${contact.publicKey}/${chat.uuid}` const mqttTopic = `${contact.publicKey}/${chat.uuid}`
const replayingHistory = true
await network.signAndSend({ await network.signAndSend({
data, data,
dest: contact.publicKey, dest: contact.publicKey,
}, mqttTopic) }, mqttTopic, replayingHistory)
}) })
} }

4
api/network/receive.ts

@ -129,8 +129,10 @@ async function forwardMessageToTribe(ogpayload, sender){
console.log('forwardMessageToTribe',ogpayload) console.log('forwardMessageToTribe',ogpayload)
const chat = await models.Chat.findOne({where:{uuid:ogpayload.chat.uuid}}) const chat = await models.Chat.findOne({where:{uuid:ogpayload.chat.uuid}})
console.log('chat.contactIds',chat.contactIds)
let contactIds = JSON.parse(chat.contactIds||'[]') let contactIds = JSON.parse(chat.contactIds||'[]')
contactIds = contactIds.filter(cid=>cid!==sender.id) contactIds = contactIds.filter(cid=>cid!==sender.id)
console.log('contactIds',contactIds)
if(contactIds.length===0) { if(contactIds.length===0) {
return // totally skip if only send is in tribe return // totally skip if only send is in tribe
} }
@ -154,7 +156,7 @@ async function forwardMessageToTribe(ogpayload, sender){
...owner.dataValues, ...owner.dataValues,
...payload.sender&&payload.sender.alias && {alias:payload.sender.alias} ...payload.sender&&payload.sender.alias && {alias:payload.sender.alias}
}, },
chat: {...chat.dataValues, contactIds:[sender.id]}, chat: {...chat.dataValues, contactIds},
skipPubKey: payload.sender.pub_key, skipPubKey: payload.sender.pub_key,
success: ()=>{}, success: ()=>{},
receive: ()=>{} receive: ()=>{}

6
api/network/send.ts

@ -90,7 +90,7 @@ export async function sendMessage(params) {
} }
} }
export function signAndSend(opts, mqttTopic?:string){ export function signAndSend(opts, mqttTopic?:string, replayingHistory?:boolean){
// console.log('sign and send!',opts) // console.log('sign and send!',opts)
return new Promise(async function(resolve, reject) { return new Promise(async function(resolve, reject) {
if(!opts || typeof opts!=='object') { if(!opts || typeof opts!=='object') {
@ -109,7 +109,9 @@ export function signAndSend(opts, mqttTopic?:string){
try { try {
if(mqttTopic) { if(mqttTopic) {
await tribes.publish(mqttTopic, data, function(){ await tribes.publish(mqttTopic, data, function(){
if(mqttTopic) checkIfAutoConfirm(opts.data) if(!replayingHistory){
if(mqttTopic) checkIfAutoConfirm(opts.data)
}
}) })
} else { } else {
await LND.keysendMessage({...opts,data}) await LND.keysendMessage({...opts,data})

3
dist/api/controllers/chatTribes.js

@ -188,10 +188,11 @@ function replayChatHistory(chat, contact) {
msg = yield msg_1.decryptMessage(msg, chat); msg = yield msg_1.decryptMessage(msg, chat);
const data = yield msg_1.personalizeMessage(msg, contact, true); const data = yield msg_1.personalizeMessage(msg, contact, true);
const mqttTopic = `${contact.publicKey}/${chat.uuid}`; const mqttTopic = `${contact.publicKey}/${chat.uuid}`;
const replayingHistory = true;
yield network.signAndSend({ yield network.signAndSend({
data, data,
dest: contact.publicKey, dest: contact.publicKey,
}, mqttTopic); }, mqttTopic, replayingHistory);
})); }));
}); });
} }

2
dist/api/controllers/chatTribes.js.map

File diff suppressed because one or more lines are too long

4
dist/api/network/receive.js

@ -148,8 +148,10 @@ function forwardMessageToTribe(ogpayload, sender) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
console.log('forwardMessageToTribe', ogpayload); console.log('forwardMessageToTribe', ogpayload);
const chat = yield models_1.models.Chat.findOne({ where: { uuid: ogpayload.chat.uuid } }); const chat = yield models_1.models.Chat.findOne({ where: { uuid: ogpayload.chat.uuid } });
console.log('chat.contactIds', chat.contactIds);
let contactIds = JSON.parse(chat.contactIds || '[]'); let contactIds = JSON.parse(chat.contactIds || '[]');
contactIds = contactIds.filter(cid => cid !== sender.id); contactIds = contactIds.filter(cid => cid !== sender.id);
console.log('contactIds', contactIds);
if (contactIds.length === 0) { if (contactIds.length === 0) {
return; // totally skip if only send is in tribe return; // totally skip if only send is in tribe
} }
@ -169,7 +171,7 @@ function forwardMessageToTribe(ogpayload, sender) {
send_1.sendMessage({ send_1.sendMessage({
type, message, type, message,
sender: Object.assign(Object.assign({}, owner.dataValues), payload.sender && payload.sender.alias && { alias: payload.sender.alias }), sender: Object.assign(Object.assign({}, owner.dataValues), payload.sender && payload.sender.alias && { alias: payload.sender.alias }),
chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [sender.id] }), chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds }),
skipPubKey: payload.sender.pub_key, skipPubKey: payload.sender.pub_key,
success: () => { }, success: () => { },
receive: () => { } receive: () => { }

2
dist/api/network/receive.js.map

File diff suppressed because one or more lines are too long

8
dist/api/network/send.js

@ -99,7 +99,7 @@ function sendMessage(params) {
}); });
} }
exports.sendMessage = sendMessage; exports.sendMessage = sendMessage;
function signAndSend(opts, mqttTopic) { function signAndSend(opts, mqttTopic, replayingHistory) {
// console.log('sign and send!',opts) // console.log('sign and send!',opts)
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
@ -117,8 +117,10 @@ function signAndSend(opts, mqttTopic) {
try { try {
if (mqttTopic) { if (mqttTopic) {
yield tribes.publish(mqttTopic, data, function () { yield tribes.publish(mqttTopic, data, function () {
if (mqttTopic) if (!replayingHistory) {
checkIfAutoConfirm(opts.data); if (mqttTopic)
checkIfAutoConfirm(opts.data);
}
}); });
} }
else { else {

2
dist/api/network/send.js.map

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save