actions/disruptions.js (view raw)
1const requestTPG = require("../tpgRequest");
2
3const formatData = (dataTPG, request) => {
4 const disruptions = dataTPG.data.disruptions;
5 if (disruptions.length === 0) {
6 return "Il n'y a aucun incident sur le réseau actuellement";
7 }
8 // If user gives a line code, filter disruptions for this line
9 if (request.content.dialogflow.parameters.lineCode) {
10 const lineCode = request.content.dialogflow.parameters.lineCode;
11 const filteredDisruptions = disruptions.filter(
12 d => d.lineCode === lineCode
13 );
14 if (filteredDisruptions.length > 0) {
15 return filteredDisruptions.reduce(
16 (acc, cur) =>
17 acc +
18 `
19 *${cur.nature}*\n(${cur.place})
20 ${cur.consequence}
21 `,
22 `Voilà les perturbations pour la ligne *${lineCode}*:\n`
23 );
24 } else
25 return `Il n'y a pas d'incident impactant la ligne ${
26 lineCode
27 } actuellement`;
28 }
29 // If is not, send all disruptions
30 const text = disruptions.reduce(
31 (acc, cur) =>
32 acc +
33 `
34Ligne *${cur.lineCode}*:
35 *${cur.nature}* (${cur.place})
36${cur.consequence}
37`,
38 "Voilà la liste des perturbations en cours sur le réseau TPG:\n"
39 );
40 return text;
41};
42
43module.exports = (request, response) =>
44 requestTPG("GetDisruptions")
45 .then(dataTPG => formatData(dataTPG, request))
46 .then(response.sendText);