apis.js 814 B

12345678910111213141516171819202122232425262728293031323334353637
  1. 'use strict';
  2. const request = require('request'),
  3. config = require('config');
  4. module.exports = {
  5. /**
  6. * Fetches a list of songs from Youtubes API
  7. *
  8. * @param session
  9. * @param query - the query we'll pass to youtubes api
  10. * @param cb
  11. * @return {{ status: String, data: Object }}
  12. */
  13. searchYoutube: (session, query, cb) => {
  14. const params = [
  15. 'part=snippet',
  16. `q=${encodeURIComponent(query)}`,
  17. `key=${config.get('apis.youtube.key')}`,
  18. 'type=video',
  19. 'maxResults=15'
  20. ].join('&');
  21. request(`https://www.googleapis.com/youtube/v3/search?${params}`, (err, res, body) => {
  22. if (err) {
  23. console.error(err);
  24. return cb({ status: 'error', message: 'Failed to search youtube with the requested query' });
  25. }
  26. cb({ status: 'success', data: JSON.parse(body) });
  27. });
  28. }
  29. };