From 144ea0f70b648bedb1a8df8e192d02fe05d9f87b Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Fri, 22 May 2020 10:01:04 -0700 Subject: [PATCH] check needsPricePerMessage --- api/network/receive.ts | 23 +++++++++++++++-------- dist/api/network/receive.js | 25 ++++++++++++++++--------- dist/api/network/receive.js.map | 2 +- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/api/network/receive.ts b/api/network/receive.ts index 4ef7c6c..2032ab2 100644 --- a/api/network/receive.ts +++ b/api/network/receive.ts @@ -18,6 +18,9 @@ const typesToForward=[ const typesToModify=[ msgtypes.attachment ] +const typesThatNeedPricePerMessage = [ + msgtypes.message, msgtypes.attachment +] async function onReceive(payload){ console.log("=>>> onReceive",payload) // if tribe, owner must forward to MQTT @@ -25,22 +28,26 @@ async function onReceive(payload){ const toAddIn:{[k:string]:any} = {} const isTribe = payload.chat && payload.chat.type===constants.chat_types.tribe if(isTribe && typesToForward.includes(payload.type)){ + const needsPricePerJoin = typesThatNeedPricePerMessage.includes(payload.type) const chat = await models.Chat.findOne({where:{uuid:payload.chat.uuid}}) const tribeOwnerPubKey = chat.ownerPubkey const owner = await models.Contact.findOne({where: {isOwner:true}}) if(owner.publicKey===tribeOwnerPubKey){ - // CHECK THEY ARE IN THE GROUP - const senderContact = await models.Contact.findOne({where:{publicKey:payload.sender.pub_key}}) - const senderMember = senderContact && await models.ChatMember.findOne({where:{contactId:senderContact.id, chatId:chat.id}}) - if(!senderMember) doAction=false - // CHECK PRICES toAddIn.isTribeOwner = true - if(payload.type===msgtypes.group_join) { - if(payload.message.amount insufficient payment for this action') } diff --git a/dist/api/network/receive.js b/dist/api/network/receive.js index f1582df..0067ad7 100644 --- a/dist/api/network/receive.js +++ b/dist/api/network/receive.js @@ -27,6 +27,9 @@ const typesToForward = [ const typesToModify = [ msgtypes.attachment ]; +const typesThatNeedPricePerMessage = [ + msgtypes.message, msgtypes.attachment +]; function onReceive(payload) { return __awaiter(this, void 0, void 0, function* () { console.log("=>>> onReceive", payload); @@ -35,25 +38,29 @@ function onReceive(payload) { const toAddIn = {}; const isTribe = payload.chat && payload.chat.type === constants.chat_types.tribe; if (isTribe && typesToForward.includes(payload.type)) { + const needsPricePerJoin = typesThatNeedPricePerMessage.includes(payload.type); const chat = yield models_1.models.Chat.findOne({ where: { uuid: payload.chat.uuid } }); const tribeOwnerPubKey = chat.ownerPubkey; const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); if (owner.publicKey === tribeOwnerPubKey) { - // CHECK THEY ARE IN THE GROUP - const senderContact = yield models_1.models.Contact.findOne({ where: { publicKey: payload.sender.pub_key } }); - const senderMember = senderContact && (yield models_1.models.ChatMember.findOne({ where: { contactId: senderContact.id, chatId: chat.id } })); - if (!senderMember) - doAction = false; - // CHECK PRICES toAddIn.isTribeOwner = true; - if (payload.type === msgtypes.group_join) { - if (payload.message.amount < chat.priceToJoin) + // CHECK THEY ARE IN THE GROUP if message + if (needsPricePerJoin) { + const senderContact = yield models_1.models.Contact.findOne({ where: { publicKey: payload.sender.pub_key } }); + const senderMember = senderContact && (yield models_1.models.ChatMember.findOne({ where: { contactId: senderContact.id, chatId: chat.id } })); + if (!senderMember) doAction = false; } - if (payload.type === msgtypes.message) { + // CHECK PRICES + if (needsPricePerJoin) { if (payload.message.amount < chat.pricePerMessage) doAction = false; } + // check price to join + if (payload.type === msgtypes.group_join) { + if (payload.message.amount < chat.priceToJoin) + doAction = false; + } if (doAction) forwardMessageToTribe(payload); else diff --git a/dist/api/network/receive.js.map b/dist/api/network/receive.js.map index 426ec3b..b5ff984 100644 --- a/dist/api/network/receive.js.map +++ b/dist/api/network/receive.js.map @@ -1 +1 @@ -{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../../api/network/receive.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../../api/network/receive.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA4B;AAC5B,sCAAqC;AACrC,kDAA0C;AAC1C,gDAA0C;AAC1C,0CAAyC;AACzC,kDAAwE;AACxE,sCAAkC;AAClC,iCAAkC;AAClC,qCAAsC;AACtC,sCAAiE;AAEjE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC,6BAA6B,CAAC,CAAC,CAAA;AAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAA;AAExC,MAAM,cAAc,GAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChF,CAAA;AACD,MAAM,aAAa,GAAC;IACnB,QAAQ,CAAC,UAAU;CACnB,CAAA;AACD,MAAM,4BAA4B,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU;CACrC,CAAA;AACD,SAAe,SAAS,CAAC,OAAO;;QAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAC,OAAO,CAAC,CAAA;QACrC,uCAAuC;QACvC,IAAI,QAAQ,GAAG,IAAI,CAAA;QACnB,MAAM,OAAO,GAAoB,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAA;QAC9E,IAAG,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;YACnD,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC7E,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC,EAAC,CAAC,CAAA;YACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAA;YACzC,MAAM,KAAK,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,CAAA;YACnE,IAAG,KAAK,CAAC,SAAS,KAAG,gBAAgB,EAAC;gBACrC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;gBAC3B,yCAAyC;gBACzC,IAAG,iBAAiB,EAAE;oBACrB,MAAM,aAAa,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,SAAS,EAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAC,EAAC,CAAC,CAAA;oBAC9F,MAAM,YAAY,GAAG,aAAa,KAAI,MAAM,eAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,SAAS,EAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAC,IAAI,CAAC,EAAE,EAAC,EAAC,CAAC,CAAA,CAAA;oBAC3H,IAAG,CAAC,YAAY;wBAAE,QAAQ,GAAC,KAAK,CAAA;iBAChC;gBACD,eAAe;gBACf,IAAG,iBAAiB,EAAE;oBACrB,IAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC,eAAe;wBAAE,QAAQ,GAAC,KAAK,CAAA;iBAC9D;gBACD,sBAAsB;gBACtB,IAAG,OAAO,CAAC,IAAI,KAAG,QAAQ,CAAC,UAAU,EAAE;oBACtC,IAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC,WAAW;wBAAE,QAAQ,GAAC,KAAK,CAAA;iBAC1D;gBACD,IAAG,QAAQ;oBAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;;oBACtC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;aAC3D;SACD;QACD,IAAG,QAAQ;YAAE,WAAW,iCAAK,OAAO,GAAK,OAAO,EAAE,CAAA;IACnD,CAAC;CAAA;AAED,SAAe,WAAW,CAAC,IAAI;;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAA;QAClB,IAAG,OAAO,CAAC,YAAY,EAAE;YACxB,0CAA0C;YAC1C,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC,EAAC,CAAC,CAAA;YACxE,MAAM,GAAG,GAAG,MAAM,oBAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5C,MAAM,EAAE,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,CAAA;YAC/D,OAAO,GAAG,MAAM,2BAAqB,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA,CAAC,oBAAoB;SACzE;QACD,IAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;SAC9B;aAAM;YACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SACpD;IACF,CAAC;CAAA;AAED,SAAe,qBAAqB,CAAC,SAAS;;QAC7C,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAC,CAAC,CAAA;QAE1E,IAAI,OAAO,CAAA;QACX,IAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC;YACzC,OAAO,GAAG,MAAM,sBAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;SAC9C;aAAM;YACN,OAAO,GAAG,SAAS,CAAA;SACnB;QACD,mEAAmE;QAEnE,yFAAyF;QACzF,MAAM,KAAK,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC/B,0CAA0C;QAC1C,0CAA0C;QAC1C,kBAAW,CAAC;YACX,MAAM,kCACF,KAAK,CAAC,UAAU,GAChB,OAAO,CAAC,MAAM,IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAC,KAAK,EAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAC,CACvE;YACD,IAAI,EAAE,IAAI,EAAE,OAAO;YACnB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAClC,OAAO,EAAE,GAAE,EAAE,GAAC,CAAC;YACf,OAAO,EAAE,GAAE,EAAE,GAAC,CAAC;SACf,CAAC,CAAA;IACH,CAAC;CAAA;AAED,MAAM,OAAO,GAAG;IACZ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAW,CAAC,QAAQ,CAAC,iBAAiB;IAC9D,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,yBAAW,CAAC,QAAQ,CAAC,wBAAwB;IAClF,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAW,CAAC,QAAQ,CAAC,cAAc;IACvD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAW,CAAC,QAAQ,CAAC,cAAc;IACvD,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAW,CAAC,QAAQ,CAAC,cAAc;IAC9D,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,aAAa,CAAC,mBAAmB;IACtE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,iBAAiB;IAC1D,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,eAAe;IACtD,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,qBAAqB;IACnE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,mBAAmB;IAC/D,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,0BAA0B;IACrE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,0BAA0B;IACrE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,gBAAgB;IACzD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAW,CAAC,KAAK,CAAC,iBAAiB;CAC9D,CAAA;AAED,SAAsB,qBAAqB;;QAC1C,IAAG;YACF,MAAM,mBAAO,EAAE,CAAA;YACf,MAAM,UAAU,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAA;SACvD;QAAC,OAAM,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACP;IACF,CAAC;CAAA;AAPD,sDAOC;AAED,SAAsB,uBAAuB;;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAM,KAAK,EAAE,OAAO,EAAC,EAAE;YACrC,IAAG;gBACF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;gBAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;gBAChE,mCAAmC;gBACnC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAA;gBAChD,SAAS,CAAC,OAAO,CAAC,CAAA;aAClB;YAAC,OAAM,CAAC,EAAC,GAAE;QACV,CAAC,CAAA,CAAC,CAAA;IACN,CAAC;CAAA;AAVD,0DAUC;AAED,mCAAmC;AACnC,SAAe,qBAAqB,CAAC,IAAI;;QACxC,IAAI,OAAO,CAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAC,CAAC,CAAC,CAAA;QAChC,IAAI;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACzB,IAAG,OAAO,EAAE;gBACX,MAAM,CAAC,GAAG,MAAM,uBAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACrC,IAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE;oBAC5B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAE,EAAE,CAAA;oBACnC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,CAAA;oBAC/B,OAAO,OAAO,CAAA;iBACd;qBAAM;oBACN,OAAO,OAAO,CAAA,CAAC,aAAa;iBAC5B;aACD;SACD;QAAC,OAAM,CAAC,EAAE;YACV,IAAG,OAAO;gBAAE,OAAO,OAAO,CAAA,CAAC,aAAa;YACxC,OAAO,IAAI,CAAA;SACX;IACF,CAAC;CAAA;AAED,SAAsB,mBAAmB,CAAC,CAAC;;QAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QAC/D,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,oCAAwB,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAG,CAAC,IAAI;YAAE,OAAM;QAEhB,IAAI,OAAO,CAAA;QACX,IAAG,IAAI,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC;YAChB,IAAI;gBACH,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAA;aAC3C;YAAC,OAAM,CAAC,EAAC,GAAE;SACZ;aAAM;YACN,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAG,OAAO;gBAAE,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;SAC1D;QACD,IAAG,OAAO,EAAC;YACV,MAAM,GAAG,GAAG,OAAO,CAAA;YACnB,IAAG,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAC;gBAC9B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA,CAAC,oBAAoB;aACzC;YACP,SAAS,CAAC,GAAG,CAAC,CAAA;SACd;IACF,CAAC;CAAA;AAvBD,kDAuBC;AAED,MAAM,MAAM,GAAG,EAAE,CAAA;AACjB,SAAS,KAAK,CAAC,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,IAAG,EAAE,CAAC,MAAM,GAAC,CAAC;QAAE,OAAM;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA;IAC9D,IAAG,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAG,QAAQ,CAAC,CAAC,CAAC,EAAC;QAClC,cAAc;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,EAAE;YAC7C,OAAO,IAAI,GAAG,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,OAAO,CAAA;KACd;AACF,CAAC"} \ No newline at end of file