stream.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. module.exports = function(req, res) {
  2. /**
  3. * Fichier contenant les configurations nécéssaires au bon fonctionnement du système
  4. */
  5. const config = require('.././config');
  6. /**
  7. * Intégration des dépendences FS permettant de modifier des fichiers
  8. */
  9. const fs = require('fs');
  10. /**
  11. * Création d'une variable stockant le nom du service à aller chercher dans le fichier config
  12. */
  13. const service = req.params.service + 'filepath';
  14. /**
  15. * Si il existe bien un le service dans le fichier config, alors continuer
  16. */
  17. if (!!config[service] && config[service] != undefined) {
  18. /**
  19. * Récupération du chemin de stockage du fichier audio
  20. */
  21. const filePath = config[service];
  22. /**
  23. * Calcul de la taille du fichier audio
  24. */
  25. var stat = fs.statSync(filePath);
  26. var total = stat.size;
  27. /**
  28. * Modification du header pour que le fichier puisse être utilisable par Twilio
  29. */
  30. res.writeHead(200, {
  31. 'Content-Length': total,
  32. 'Content-Type': 'audio/mpeg'
  33. });
  34. fs.createReadStream(filePath).pipe(res);
  35. } else {
  36. return res.status(200).json({
  37. error: 'Bad service.'
  38. });
  39. }
  40. };