link_expansion.js 795 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. let https = require('https');
  2. let express = require('express');
  3. let router = express.Router();
  4. const Errors = require('../lib/errors.js');
  5. function getJsonHTTPS (url, cb) {
  6. https.get(url, res => {
  7. if(res.statusCode === 200) {
  8. let chunks = [];
  9. res.on('data', chunk => chunks.push(chunk));
  10. res.on('end', () => {
  11. let data = Buffer.concat(chunks).toString();
  12. let json = JSON.parse(data);
  13. cb(null, json);
  14. })
  15. } else {
  16. cb(
  17. new Error(`Request Failed.\nStatus Code: ${res.statusCode}`)
  18. );
  19. }
  20. })
  21. }
  22. router.get('/twitter', async (req, res, next) => {
  23. let url = 'https://publish.twitter.com/oembed?url=' + req.query.url
  24. getJsonHTTPS(url, (err, data) => {
  25. if(err) {
  26. next(Errors.unknown);
  27. } else {
  28. res.json(data);
  29. }
  30. });
  31. });
  32. module.exports = router;