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

add-/birthdays

parent 7f967c34
Branches
No related tags found
No related merge requests found
const bot = require('./telegram'); const bot = require('./telegram');
const app = require('./website'); const app = require('./website');
const mongoose = require('./mongoose'); const mongoose = require('./mongoose');
const { sendRequest, getBirthdays } = require('./requests');
const Token = require('./models/Token'); const Token = require('./models/Token');
const rp = require('request-promise');
function sendRequest(req, token, callback) {
const options = {
headers: { 'Authorization': `Bearer ${token}` },
json: true
}
const url = 'https://gateway.linkcs.fr/v1/graphql';
return rp(`${url}?query=${req}`, options)
}
function getBirthdays(token) {
req = 'query getUsersBirthday {users: usersBirthday { ...userData}}fragment userData on User {id firstName lastName roles {sector {composition {association {id}}}}}'
return sendRequest(req, token).then(body => {
const users = [];
body.data.users.forEach(user => {
use = {};
use.name = `${user.firstName} ${user.lastName}`;
use.asso = [];
user.roles.forEach(role => {
use.asso.push(role.sector.composition.association.id);
})
users.push(use);
});
return users;
})
}
// Token.findOne({ expiration: { $gt: Date.now() } }).then(token => {
// getBirthdays(token.token).then(a => console.log(a));
// })
\ No newline at end of file
const rp = require('request-promise');
const Token = require('./models/Token');
function sendRequest(req, token, callback) {
const options = {
headers: { 'Authorization': `Bearer ${token}` },
json: true
}
const url = 'https://gateway.linkcs.fr/v1/graphql';
return rp(`${url}?query=${req}`, options)
}
function getBirthdays(token) {
req = 'query getUsersBirthday {users: usersBirthday { ...userData}}fragment userData on User {id firstName lastName roles {sector {composition {association {id}}}}}'
return sendRequest(req, token).then(body => {
const users = [];
body.data.users.forEach(user => {
use = {};
use.name = `${user.firstName} ${user.lastName}`;
use.asso = [];
user.roles.forEach(role => {
use.asso.push(role.sector.composition.association.id);
})
users.push(use);
});
return users;
})
}
module.exports = { getBirthdays, sendRequest };
\ No newline at end of file
...@@ -3,6 +3,7 @@ const TelegramBot = require('node-telegram-bot-api'); ...@@ -3,6 +3,7 @@ const TelegramBot = require('node-telegram-bot-api');
const Token = require('./models/Token'); const Token = require('./models/Token');
const config = require('./config'); const config = require('./config');
const { sendRequest, getBirthdays } = require('./requests');
const bot = new TelegramBot(config.telegram.token, { polling: true }); const bot = new TelegramBot(config.telegram.token, { polling: true });
...@@ -53,4 +54,20 @@ bot.onText(/\/disconnect/, (msg, _) => { ...@@ -53,4 +54,20 @@ bot.onText(/\/disconnect/, (msg, _) => {
}) })
}); });
bot.onText(/\/birthdays/, (msg, _) => {
const chatId = msg.chat.id;
Token.findOne({
chatId: chatId,
expiration: { $gt: Date.now() }
}).then(token => {
return getBirthdays(token.token)
}).then(users => {
var msg = 'Joyeux anniversaire à :\n'
users.forEach(user => {
msg += `${user.name}\n`
});
bot.sendMessage(chatId, msg);
})
});
module.exports = bot; module.exports = bot;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment