Browse Source

fix sending payment to img merchant after first time

feature/dockerfile-arm
Evan Feenstra 5 years ago
parent
commit
58a36c9b50
  1. 12
      api/controllers/media.ts
  2. 3
      api/helpers.ts
  3. 19
      api/network/modify.ts
  4. 9
      dist/api/controllers/media.js
  5. 2
      dist/api/controllers/media.js.map
  6. 3
      dist/api/helpers.js
  7. 2
      dist/api/helpers.js.map
  8. 17
      dist/api/network/modify.js
  9. 2
      dist/api/network/modify.js.map

12
api/controllers/media.ts

@ -218,7 +218,7 @@ const receivePurchase = async (payload) => {
var date = new Date(); var date = new Date();
date.setMilliseconds(0) date.setMilliseconds(0)
const {owner, sender, chat, amount, mediaToken, msg_uuid, chat_type} = await helpers.parseReceiveParams(payload) const {owner, sender, chat, amount, mediaToken, msg_uuid, chat_type, skip_payment_processing} = await helpers.parseReceiveParams(payload)
if(!owner || !sender || !chat) { if(!owner || !sender || !chat) {
return console.log('=> group chat not found!') return console.log('=> group chat not found!')
} }
@ -239,6 +239,14 @@ const receivePurchase = async (payload) => {
response: jsonUtils.messageToJson(message, chat, sender) response: jsonUtils.messageToJson(message, chat, sender)
}) })
const isTribe = chat_type===constants.chat_types.tribe
// if sats forwarded from tribe owner, for the >1 time
// dont need to send back token, because admin already has it
if(isTribe && skip_payment_processing) {
return console.log('=> skip payment processing')
}
const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1] const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1]
if(!muid){ if(!muid){
return console.log('no muid') return console.log('no muid')
@ -250,8 +258,6 @@ const receivePurchase = async (payload) => {
if (!ogMessage){ if (!ogMessage){
return console.log('no original message') return console.log('no original message')
} }
const isTribe = chat_type===constants.chat_types.tribe
// find mediaKey for who sent // find mediaKey for who sent
const mediaKey = await models.MediaKey.findOne({where:{ const mediaKey = await models.MediaKey.findOne({where:{

3
api/helpers.ts

@ -151,6 +151,7 @@ async function parseReceiveParams(payload) {
const mediaKey = dat.message.mediaKey const mediaKey = dat.message.mediaKey
const mediaType = dat.message.mediaType const mediaType = dat.message.mediaType
const date_string = dat.message.date const date_string = dat.message.date
const skip_payment_processing = dat.message.skipPaymentProcessing
const reply_uuid = dat.message.replyUuid const reply_uuid = dat.message.replyUuid
const isTribeOwner = dat.isTribeOwner?true:false const isTribeOwner = dat.isTribeOwner?true:false
@ -174,7 +175,7 @@ async function parseReceiveParams(payload) {
} }
chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) chat = await models.Chat.findOne({ where: { uuid: chat_uuid } })
} }
return { owner, sender, chat, sender_pub_key, sender_alias, isTribeOwner, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, originalMuid, chat_type, msg_id, chat_members, chat_name, chat_host, chat_key, remote_content, msg_uuid, date_string, reply_uuid } return { owner, sender, chat, sender_pub_key, sender_alias, isTribeOwner, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, originalMuid, chat_type, msg_id, chat_members, chat_name, chat_host, chat_key, remote_content, msg_uuid, date_string, reply_uuid, skip_payment_processing }
} }
export { export {

19
api/network/modify.ts

@ -55,17 +55,30 @@ export async function purchaseFromOriginalSender(payload, chat, purchaser){
mediaType:mediaKey.mediaType mediaType:mediaKey.mediaType
} }
sendMessage({ sendMessage({
chat: {...chat.dataValues, contactIds:[purchaser.id]}, chat: {...chat.dataValues, contactIds:[mediaKey.sender]}, // the merchant id
sender: owner, sender: owner,
type: constants.message_types.purchase_accept, type: constants.message_types.purchase_accept,
message: msg, message: msg,
success: ()=>{}, success: ()=>{},
failure: ()=>{} failure: ()=>{}
}) })
// PAY THE OG POSTER HERE!!!
sendMessage({
chat: {...chat.dataValues, contactIds:[purchaser.id]},
sender: owner,
type: constants.message_types.purchase_accept,
amount: amount,
message: {
mediaToken: mt,
skipPaymentProcessing: true,
},
success: ()=>{},
failure: ()=>{}
})
} else { } else {
const ogmsg = await models.Message.findOne({where:{chatId:chat.id,mediaToken:mt}}) const ogmsg = await models.Message.findOne({where:{chatId:chat.id,mediaToken:mt}})
// purchase it from creator (send "purchase") // purchase it from creator (send "purchase")
const msg={amount, mediaToken:mt} const msg={mediaToken:mt}
sendMessage({ sendMessage({
chat: {...chat.dataValues, contactIds:[ogmsg.sender]}, chat: {...chat.dataValues, contactIds:[ogmsg.sender]},
sender: { sender: {
@ -201,7 +214,7 @@ export async function downloadAndUploadAndSaveReturningTermsAndKey(payload, chat
key:encKey, key:encKey,
messageId: (payload.message&&payload.message.id)||0, messageId: (payload.message&&payload.message.id)||0,
receiver: 0, receiver: 0,
sender: sender.id, // the og sender sender: sender.id, // the og sender (merchant) who is sending the completed media token
createdAt: date, createdAt: date,
originalMuid: ogmuid, originalMuid: ogmuid,
mediaType:typ, mediaType:typ,

9
dist/api/controllers/media.js

@ -193,7 +193,7 @@ const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function*
console.log('=> received purchase', { payload }); console.log('=> received purchase', { payload });
var date = new Date(); var date = new Date();
date.setMilliseconds(0); date.setMilliseconds(0);
const { owner, sender, chat, amount, mediaToken, msg_uuid, chat_type } = yield helpers.parseReceiveParams(payload); const { owner, sender, chat, amount, mediaToken, msg_uuid, chat_type, skip_payment_processing } = yield helpers.parseReceiveParams(payload);
if (!owner || !sender || !chat) { if (!owner || !sender || !chat) {
return console.log('=> group chat not found!'); return console.log('=> group chat not found!');
} }
@ -212,6 +212,12 @@ const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function*
type: 'purchase', type: 'purchase',
response: jsonUtils.messageToJson(message, chat, sender) response: jsonUtils.messageToJson(message, chat, sender)
}); });
const isTribe = chat_type === constants.chat_types.tribe;
// if sats forwarded from tribe owner, for the >1 time
// dont need to send back token, because admin already has it
if (isTribe && skip_payment_processing) {
return console.log('=> skip payment processing');
}
const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1]; const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1];
if (!muid) { if (!muid) {
return console.log('no muid'); return console.log('no muid');
@ -222,7 +228,6 @@ const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function*
if (!ogMessage) { if (!ogMessage) {
return console.log('no original message'); return console.log('no original message');
} }
const isTribe = chat_type === constants.chat_types.tribe;
// find mediaKey for who sent // find mediaKey for who sent
const mediaKey = yield models_1.models.MediaKey.findOne({ where: { const mediaKey = yield models_1.models.MediaKey.findOne({ where: {
muid, receiver: isTribe ? 0 : sender.id, muid, receiver: isTribe ? 0 : sender.id,

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

File diff suppressed because one or more lines are too long

3
dist/api/helpers.js

@ -167,6 +167,7 @@ function parseReceiveParams(payload) {
const mediaKey = dat.message.mediaKey; const mediaKey = dat.message.mediaKey;
const mediaType = dat.message.mediaType; const mediaType = dat.message.mediaType;
const date_string = dat.message.date; const date_string = dat.message.date;
const skip_payment_processing = dat.message.skipPaymentProcessing;
const reply_uuid = dat.message.replyUuid; const reply_uuid = dat.message.replyUuid;
const isTribeOwner = dat.isTribeOwner ? true : false; const isTribeOwner = dat.isTribeOwner ? true : false;
const isConversation = !chat_type || (chat_type && chat_type == constants.chat_types.conversation); const isConversation = !chat_type || (chat_type && chat_type == constants.chat_types.conversation);
@ -188,7 +189,7 @@ function parseReceiveParams(payload) {
} }
chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } });
} }
return { owner, sender, chat, sender_pub_key, sender_alias, isTribeOwner, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, originalMuid, chat_type, msg_id, chat_members, chat_name, chat_host, chat_key, remote_content, msg_uuid, date_string, reply_uuid }; return { owner, sender, chat, sender_pub_key, sender_alias, isTribeOwner, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, originalMuid, chat_type, msg_id, chat_members, chat_name, chat_host, chat_key, remote_content, msg_uuid, date_string, reply_uuid, skip_payment_processing };
}); });
} }
exports.parseReceiveParams = parseReceiveParams; exports.parseReceiveParams = parseReceiveParams;

2
dist/api/helpers.js.map

File diff suppressed because one or more lines are too long

17
dist/api/network/modify.js

@ -67,18 +67,31 @@ function purchaseFromOriginalSender(payload, chat, purchaser) {
mediaType: mediaKey.mediaType mediaType: mediaKey.mediaType
}; };
send_1.sendMessage({ send_1.sendMessage({
chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [purchaser.id] }), chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [mediaKey.sender] }),
sender: owner, sender: owner,
type: constants.message_types.purchase_accept, type: constants.message_types.purchase_accept,
message: msg, message: msg,
success: () => { }, success: () => { },
failure: () => { } failure: () => { }
}); });
// PAY THE OG POSTER HERE!!!
send_1.sendMessage({
chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [purchaser.id] }),
sender: owner,
type: constants.message_types.purchase_accept,
amount: amount,
message: {
mediaToken: mt,
skipPaymentProcessing: true,
},
success: () => { },
failure: () => { }
});
} }
else { else {
const ogmsg = yield models_1.models.Message.findOne({ where: { chatId: chat.id, mediaToken: mt } }); const ogmsg = yield models_1.models.Message.findOne({ where: { chatId: chat.id, mediaToken: mt } });
// purchase it from creator (send "purchase") // purchase it from creator (send "purchase")
const msg = { amount, mediaToken: mt }; const msg = { mediaToken: mt };
send_1.sendMessage({ send_1.sendMessage({
chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [ogmsg.sender] }), chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [ogmsg.sender] }),
sender: Object.assign(Object.assign({}, owner.dataValues), purchaser && purchaser.alias && { alias: purchaser.alias }), sender: Object.assign(Object.assign({}, owner.dataValues), purchaser && purchaser.alias && { alias: purchaser.alias }),

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

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