Merge pull request #234 from shocknet/tip-post-via-http

tip post through http
This commit is contained in:
Daniel Lugo 2020-10-30 15:45:47 -04:00 committed by GitHub
commit ca615cd69f
2 changed files with 35 additions and 8 deletions

View file

@ -906,17 +906,30 @@ const sendHRWithInitialMsg = async (
await sendMessage(recipientPublicKey, initialMsg, user, SEA) await sendMessage(recipientPublicKey, initialMsg, user, SEA)
} }
/**
* @typedef {object} SpontPaymentOptions
* @prop {Common.Schema.OrderTargetType} type
* @prop {string=} postID
*/
/** /**
* Returns the preimage corresponding to the payment. * Returns the preimage corresponding to the payment.
* @param {string} to * @param {string} to
* @param {number} amount * @param {number} amount
* @param {string} memo * @param {string} memo
* @param {number} feeLimit * @param {number} feeLimit
* @param {SpontPaymentOptions} opts
* @throws {Error} If no response in less than 20 seconds from the recipient, or * @throws {Error} If no response in less than 20 seconds from the recipient, or
* lightning cannot find a route for the payment. * lightning cannot find a route for the payment.
* @returns {Promise<PaymentV2>} The payment's preimage. * @returns {Promise<PaymentV2>} The payment's preimage.
*/ */
const sendSpontaneousPayment = async (to, amount, memo, feeLimit) => { const sendSpontaneousPayment = async (
to,
amount,
memo,
feeLimit,
opts = { type: 'user' }
) => {
try { try {
const SEA = require('../Mediator').mySEA const SEA = require('../Mediator').mySEA
const getUser = () => require('../Mediator').getUser() const getUser = () => require('../Mediator').getUser()
@ -937,7 +950,11 @@ const sendSpontaneousPayment = async (to, amount, memo, feeLimit) => {
from: getUser()._.sea.pub, from: getUser()._.sea.pub,
memo: memo || 'no memo', memo: memo || 'no memo',
timestamp: Date.now(), timestamp: Date.now(),
targetType: 'user' targetType: opts.type
}
if (opts.type === 'post') {
order.postID = opts.postID
} }
logger.info(JSON.stringify(order)) logger.info(JSON.stringify(order))

View file

@ -1267,12 +1267,12 @@ module.exports = async (
app.post('/api/lnd/unifiedTrx', async (req, res) => { app.post('/api/lnd/unifiedTrx', async (req, res) => {
try { try {
const { type, amt, to, memo, feeLimit } = req.body const { type, amt, to, memo, feeLimit, postID } = req.body
if (type !== 'spont') { if (type !== 'spont' && type !== 'post') {
return res.status(415).json({ return res.status(415).json({
field: 'type', field: 'type',
errorMessage: `Only 'spont' payments supported via this endpoint for now.` errorMessage: `Only 'spont' and 'post' payments supported via this endpoint for now.`
}) })
} }
@ -1306,9 +1306,19 @@ module.exports = async (
}) })
} }
return res if (type === 'post' && typeof postID !== 'string') {
.status(200) return res.status(400).json({
.json(await GunActions.sendSpontaneousPayment(to, amt, memo, feeLimit)) field: 'postID',
errorMessage: `Send postID`
})
}
return res.status(200).json(
await GunActions.sendSpontaneousPayment(to, amt, memo, feeLimit, {
type,
postID
})
)
} catch (e) { } catch (e) {
return res.status(500).json({ return res.status(500).json({
errorMessage: e.message errorMessage: e.message