index.js (view raw)
1const messenja = require("messenja");
2const Actions = require("./actions");
3const db = require("./db");
4const logger = require("./logger");
5
6const app = messenja((request, response, utils) => {
7 logger.request(request);
8
9 // Store data for stats
10 db.addRequest("api");
11
12 // If user uses callback
13 if (request.isCallback) {
14 // If user clicks on "Démarrer" button (Facebook)
15 if (request.data === "/start")
16 return Actions("welcome", request, response, utils);
17 }
18 // If user sends text
19 if (request.content) {
20 if (request.content.hasOwnProperty("text")) {
21 // If text is "/favoris" (useful for Telegram)
22 if (request.content.text === "/favoris") {
23 return Actions("server.favorites", request, response, utils);
24 }
25 // If request has Dialogflow data associated
26 if (request.content.hasOwnProperty("dialogflow")) {
27 const action = request.content.dialogflow.action;
28 return Actions(action, request, response, utils);
29 }
30 // Else
31 return response.sendText("Pas de connexion avec le service NLP");
32 }
33 // If user sends a location
34 if (request.content.hasOwnProperty("location")) {
35 return Actions("stop.closeStops", request, response);
36 }
37 // If user from Facebook sends an image (thumb up sticker in most case)
38 if (
39 request.service === "facebook" &&
40 request.content.hasOwnProperty("image")
41 ) {
42 return Actions("server.favorites", request, response, utils);
43 }
44 }
45 return response.sendText("Je n'ai pas compris votre requête");
46});
47
48// Send privacy notes
49app.use("/privacy", (req, res) => {
50 res.send(
51 "Le développeur de Tipigee s'engage à ne pas utiliser / diffuser toute information fournie par un utilisateur du chatbot. Aucune exception possible."
52 );
53});