Files
jambonz-api-server/lib/routes/api/invoices.js
Dave Horton ed51d8b13f merge of features from hosted branch (#7)
major merge of features from the hosted branch that was created temporarily during the initial launch of jambonz.org
2021-06-17 15:56:21 -04:00

27 lines
868 B
JavaScript

const router = require('express').Router();
const assert = require('assert');
const Account = require('../../models/account');
const {
retrieveUpcomingInvoice
} = require('../../utils/stripe-utils');
const sysError = require('../error');
/* retrieve */
router.get('/', async(req, res) => {
const logger = req.app.locals.logger;
const {account_sid} = req.user;
try {
const results = await Account.retrieve(account_sid);
assert.ok(1 === results.length, `account ${account_sid} not found`);
const {stripe_customer_id} = results[0];
if (!stripe_customer_id) return res.sendStatus(404);
const invoice = await retrieveUpcomingInvoice(logger, stripe_customer_id);
res.status(200).json(invoice);
} catch (err) {
if (err.statusCode) return res.sendStatus(err.statusCode);
sysError(logger, res, err);
}
});
module.exports = router;