Skip to content
Snippets Groups Projects
Commit 4f549e6e authored by Guillaume Vagner's avatar Guillaume Vagner
Browse files

1.0 info

parent f380402a
No related branches found
No related tags found
No related merge requests found
......@@ -3,9 +3,6 @@
// Modules extérieurs
var mysql = require('promise-mysql');
// Création de variables
var schedules = {};
// Configurations
const config = require('./config');
......
// INDEX.JS : Script principal pour lancer le serveur
// Modules propres
var bot = require('./telegram');
require('./website');
......
......@@ -62,6 +62,19 @@ function getGroupById(chan, id) {
}).catch(err => { console.error(err) })
}
function getMe(chan) {
return getNewTokenIfNecessary(chan).then(chan => {
const options = {
headers: { 'Authorization': `Bearer ${chan.token}` },
json: true
}
return rp('https://auth.viarezo.fr/api/user/show/me', options)
})
}
// Récupération d'un token
function getFirstToken(code, state) {
......@@ -127,4 +140,4 @@ function getNewTokenIfNecessary(chan) {
}
}
module.exports = { getBirthdays, sendRequest, searchGroups, getGroupById, getFirstToken, getNewToken };
\ No newline at end of file
module.exports = { getBirthdays, sendRequest, searchGroups, getGroupById, getMe, getFirstToken, getNewToken };
\ No newline at end of file
// SCHEDULE.JS : Module permettant de créer des rappels d'anniversaires
// Modules extérieurs
var schedule = require('node-schedule');
......
......@@ -7,7 +7,7 @@ var TelegramBot = require('node-telegram-bot-api');
// Modules propres
var { getChanByChatId, createChan, deleteChanByChatId, modifyChan, addGroup, removeGroup, removeAllGroups, getGroups } = require('./connection-db');
var { getBirthdays, searchGroups, getGroupById } = require('./requests');
var { getBirthdays, searchGroups, getGroupById, getMe } = require('./requests');
var { schedules, addSchedule, deleteSchedule } = require('./schedule');
// Configurations
......@@ -207,7 +207,7 @@ bot.onText(/\/schedule (.+)/, (msg, match) => {
bot.onText(/\/unschedule/, msg => {
const chatId = msg.chat.id;
getChanByChatId(chatId).then(chan => {
if (!chan) return bot.sendMessage(chatId, 'Pas de compte enregistré, faites /start pour commencer');
if (!chan) return bot.sendMessage(chatId, 'Pas de compte enregistré, faites /start pour commencer.');
if (chan.schedule == '') return bot.sendMessage(chatId, 'Pas de rappel défini...');
deleteSchedule(chatId)
......@@ -218,6 +218,49 @@ bot.onText(/\/unschedule/, msg => {
})
})
// Renvoi les infos du chan
bot.onText(/\/info/, msg => {
const chatId = msg.chat.id;
// il faut chercher le gars sur l'auth.viarezo.fr/me
getChanByChatId(chatId).then(chan => {
// gestion des cas où l'utilisateur n'est pas totalement connecté
if (!chan) return bot.sendMessage(chatId, 'Pas de compte enregistré, faites /start pour commencer.');
if (chan.username.length === 0 && chan.token.length === 0) return bot.sendMessage(chatId, 'Pas de demande de connexion faite, tapez /connect pour en envoyer une.');
if (chan.token.length === 0) return bot.sendMessage(chatId, `Une demande de connexion a été faite par @${chan.username} mais n'a toujours pas été acceptée.\n${config.website.protocol}://${config.website.hostname}/?state=${chan.state}`);
return Promise.all([
getMe(chan),
getGroups(chan.chatId),
getGroups(chan.chatId).then(groups => {
return Promise.all(groups.map(group => getGroupById(chan, group)))
})
]).then(([me, groups, names]) => {
// affiche qui s'est connecté
var msg = `${me.firstName} ${me.lastName} (@${chan.username}) s'est connecté à l'OAuth.\n\n`;
// affiche le moment du rappel journalier
if (chan.schedule.length !== 0) {
msg += `Les rappels sont prévus tous les jours à ${chan.schedule}.\n`;
msg += 'Vous pouvez annuler ces rappels via /unschedule\n\n'
} else {
msg += `Vous n'avez pas de rappel journalier.\n`
msg += `Vous pouvez faire /schedule hh:mm pour en ajouter un.\n\n`
}
// affiche la liste des associations à souhait
if (groups.length === 0) {
msg += 'La liste des associations / groupes est vide.\n';
msg += 'Vous pouvez en chercher via /search sonNom, puis faire un /add sonID\n'
} else {
msg += `Les personnes faisant parti de ces associations / groupes auront leur anniversaire rapellé :\n`;
for (i = 0; i < groups.length; i++) {
msg += ` • ${names[i]} (id : ${groups[i]})\n`
}
}
bot.sendMessage(chatId, msg);
})
})
})
// J'étais bien obligé (en vrai c'est pour tester)
bot.onText(/\/nikmarine/, msg => {
const chatId = msg.chat.id;
......
// WEBSITE.JS : Gestion du site web
// Modules extérieurs
var app = require('express')();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment