apis.js 969 B

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