UNPKG

hatchyt

Version:
61 lines (50 loc) 1.74 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _database = require('../database'); var _database2 = _interopRequireDefault(_database); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // sneak in an extra row (101st) to determine // if there are "more" var PAGE_SIZE = 100; var query = '\nSELECT domain, email, datetime\nFROM signups\nORDER BY datetime DESC\nLIMIT ' + (PAGE_SIZE + 1) + '\nOFFSET ?\n'; var downloadQuery = '\nSELECT domain, email, datetime\nFROM signups\nORDER BY datetime DESC'; // parse the page from the query param function getPage(req) { var input = req.query.page || 1; input = parseInt(input, 10); if (isNaN(input)) { input = 1; } return (input - 1) * PAGE_SIZE; } function main(req, res) { var page = getPage(req); _database2.default.all(query, [page], function (err, rows) { var hasMore = rows.length > PAGE_SIZE; if (hasMore) rows.pop(); res.render('signups', { hasMore: hasMore, page: page, isSignups: true, rows: err ? [{ domain: "serveR_error", email: err.toString() }] : rows }); }); } function download(req, res) { _database2.default.all(downloadQuery, function (err, rows) { res.set({ 'Content-Disposition': 'attachment; filename="download.csv"' }); res.send(rows.map(function (row) { var fields = []; for (var field in row) { fields.push(row[field]); } return fields.join(', '); }).join('\n')); }); } exports.default = { main: main, download: download }; //# sourceMappingURL=signups.js.map