metrics.js 585 B

123456789101112131415161718192021222324
  1. const { sendBatch, clientEvent } = require('../amplitude');
  2. module.exports = async function(req, res) {
  3. try {
  4. const data = JSON.parse(req.body); // see http://crbug.com/490015
  5. const deltaT = Date.now() - data.now;
  6. const events = data.events.map(e =>
  7. clientEvent(
  8. e,
  9. req.ua,
  10. data.lang,
  11. data.session_id + deltaT,
  12. deltaT,
  13. data.platform,
  14. req.geo.country,
  15. req.geo.state
  16. )
  17. );
  18. const status = await sendBatch(events);
  19. res.sendStatus(status);
  20. } catch (e) {
  21. res.sendStatus(500);
  22. }
  23. };