all repos — tipigee @ 36c4ad6d8bb8962a94e8627cb82ec52c4242990e

(Very) old version of Kokyo

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);