Skip to content

Commit

Permalink
wip: initiate privileged endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
kpuputti committed Jun 4, 2020
1 parent b99bd3e commit 21dc9cc
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions server/api/initiate-privileged.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
const { transactionLineItems } = require('../api-util/lineItems');
const { getSdk, getTrustedSdk } = require('../api-util/sdk');

const log = (...args) => {
const formattedArgs = args.map(arg => {
if (typeof arg === 'object') {
return JSON.stringify(arg, null, ' ');
}
return arg;
});
console.log.apply(console, formattedArgs);
};

const handleError = (res, error) => {
if (error.status && error.statusText && error.data) {
// JS SDK error
res
.status(error.status)
.json({
status: error.status,
statusText: error.statusText,
data: error.data,
})
.end();
} else {
res
.status(500)
.json({ error: error.message })
.end();
}
};

module.exports = (req, res) => {
const {
isSpeculative,
listingId,
bookingData,
bodyParams,
queryParams,
} = req.body;

log('================================================================');
log('privileged transition');
log('isSpeculative:', isSpeculative);
log('listingId:', listingId);
log('bodyParams:', bodyParams);
log('queryParams:', queryParams);

const sdk = getSdk(req, res);
let lineItems = null;

sdk.listings.show({ id: listingId })
.then(listingResponse => {
const listing = listingResponse.data.data;
lineItems = transactionLineItems(listing, bookingData);

return getTrustedSdk(req);
})
.then(trustedSdk => {
log('initiating tx with trusted SDK');
if (isSpeculative) {
return trustedSdk.transactions.initiateSpeculative(bodyParams, queryParams);
}
return trustedSdk.transactions.initiate(bodyParams, queryParams);
})
.then(apiResponse => {
log('response from tx initiate:', apiResponse);
const { status, statusText, data } = apiResponse;
res
.status(status)
.json({
status,
statusText,
data,
})
.end();
})
.catch(e => {
console.error(e);
handleError(res, e);
});
};

0 comments on commit 21dc9cc

Please sign in to comment.