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();
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) {
return console.log('=> group chat not found!')
}
@ -239,6 +239,14 @@ const receivePurchase = async (payload) => {
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]
if(!muid){
return console.log('no muid')
@ -251,8 +259,6 @@ const receivePurchase = async (payload) => {
return console.log('no original message')
}
const isTribe = chat_type===constants.chat_types.tribe
// find mediaKey for who sent
const mediaKey = await models.MediaKey.findOne({where:{
muid, receiver: isTribe?0:sender.id,

3
api/helpers.ts

@ -151,6 +151,7 @@ async function parseReceiveParams(payload) {
const mediaKey = dat.message.mediaKey
const mediaType = dat.message.mediaType
const date_string = dat.message.date
const skip_payment_processing = dat.message.skipPaymentProcessing
const reply_uuid = dat.message.replyUuid
const isTribeOwner = dat.isTribeOwner?true:false
@ -174,7 +175,7 @@ async function parseReceiveParams(payload) {
}
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 {

19
api/network/modify.ts

@ -55,17 +55,30 @@ export async function purchaseFromOriginalSender(payload, chat, purchaser){
mediaType:mediaKey.mediaType
}
sendMessage({
chat: {...chat.dataValues, contactIds:[purchaser.id]},
chat: {...chat.dataValues, contactIds:[mediaKey.sender]}, // the merchant id
sender: owner,
type: constants.message_types.purchase_accept,
message: msg,
success: ()=>{},
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 {
const ogmsg = await models.Message.findOne({where:{chatId:chat.id,mediaToken:mt}})
// purchase it from creator (send "purchase")
const msg={amount, mediaToken:mt}
const msg={mediaToken:mt}
sendMessage({
chat: {...chat.dataValues, contactIds:[ogmsg.sender]},
sender: {
@ -201,7 +214,7 @@ export async function downloadAndUploadAndSaveReturningTermsAndKey(payload, chat
key:encKey,
messageId: (payload.message&&payload.message.id)||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,
originalMuid: ogmuid,
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 });
var date = new Date();
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) {
return console.log('=> group chat not found!');
}
@ -212,6 +212,12 @@ const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function*
type: 'purchase',
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];
if (!muid) {
return console.log('no muid');
@ -222,7 +228,6 @@ const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function*
if (!ogMessage) {
return console.log('no original message');
}
const isTribe = chat_type === constants.chat_types.tribe;
// find mediaKey for who sent
const mediaKey = yield models_1.models.MediaKey.findOne({ where: {
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 mediaType = dat.message.mediaType;
const date_string = dat.message.date;
const skip_payment_processing = dat.message.skipPaymentProcessing;
const reply_uuid = dat.message.replyUuid;
const isTribeOwner = dat.isTribeOwner ? true : false;
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 } });
}
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;

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
};
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,
type: constants.message_types.purchase_accept,
message: msg,
success: () => { },
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 {
const ogmsg = yield models_1.models.Message.findOne({ where: { chatId: chat.id, mediaToken: mt } });
// purchase it from creator (send "purchase")
const msg = { amount, mediaToken: mt };
const msg = { mediaToken: mt };
send_1.sendMessage({
chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: [ogmsg.sender] }),
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