Skip to content
Snippets Groups Projects
Commit 35586315 authored by Aymeric Bernard's avatar Aymeric Bernard
Browse files

[Badge] Badge can trigger frontend refresh with user info

parent d23383fd
No related branches found
No related tags found
No related merge requests found
......@@ -7,8 +7,8 @@ do
then
echo $res
echo "11ff11 0.2" > /dev/rgb_pipe
sleep 1
else
echo "ff1111 0.2" > /dev/rgb_pipe
fi
sleep 1
done
......@@ -4,24 +4,19 @@ const {
uuid, fontSize, rowHeight, port, api,
} = require('./config');
const dummyResponse = require('./dummyResponse.json');
const io = require('socket.io')(port || 3000);
const { createSignedJWT, interval } = require('./utils');
const { spawn } = require('child_process');
const dummyResponse = require('./dummyResponse.json');
const useDummy = false;
io.of('/').on('connection', (socket) => {
socket.emit('config', { fontSize, rowHeight });
const chrono = useDummy
? interval(() => {
socket.emit('panel_data', dummyResponse);
return 15000;
}, 0)
: interval(
() =>
fetch(`${api.url}/${api.version}/screen/${uuid}`, {
const doScreenApiRequest = (socket, userid = null) => {
const query = userid ? `?userid=${userid}` : '';
return fetch(`${api.url}/${api.version}/screen/${uuid}${query}`, {
headers: {
Autorization: `Bearer ${createSignedJWT()}`,
},
......@@ -31,9 +26,23 @@ io.of('/').on('connection', (socket) => {
socket.emit('panel_data', res);
return res.ttl;
})
.catch(console.log),
0,
);
.catch(console.log);
};
const setChrono = (socket) => {
if (useDummy) {
return interval(() => socket.emit('panel_data', dummyResponse), 0);
}
return interval(() => doScreenApiRequest(socket), 0);
};
io.of('/').on('connection', (socket) => {
socket.emit('config', { fontSize, rowHeight });
const chrono = setChrono(socket);
chrono.start();
// Respond to date message with the date
socket.on('date', () => {
......@@ -43,4 +52,13 @@ io.of('/').on('connection', (socket) => {
socket.on('disconnect', () => {
chrono.stop();
});
const badgeChild = spawn('scripts/nfc-poll-wrapper-dummy.sh');
badgeChild.stdout.on('data', (data0) => {
const userid = data0.toString().trim();
console.log(`child stdout: ${userid}`);
doScreenApiRequest(socket, userid).then(ttl => chrono.restart(ttl));
});
});
......@@ -56,12 +56,12 @@ const interval = (fn, initialTTL, output = {}) => {
Object.assign(output, getOutput(getTimeout(0)));
return output;
},
stop,
restart: (ttl) => {
stop();
Object.assign(output, getOutput(getTimeout(ttl || initialTTL)));
return output;
},
stop,
restartNow: () => {
stop();
Object.assign(output, getOutput(getTimeout(0)));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment