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 ...@@ -7,8 +7,8 @@ do
then then
echo $res echo $res
echo "11ff11 0.2" > /dev/rgb_pipe echo "11ff11 0.2" > /dev/rgb_pipe
sleep 1
else else
echo "ff1111 0.2" > /dev/rgb_pipe echo "ff1111 0.2" > /dev/rgb_pipe
fi fi
sleep 1
done done
...@@ -4,24 +4,19 @@ const { ...@@ -4,24 +4,19 @@ const {
uuid, fontSize, rowHeight, port, api, uuid, fontSize, rowHeight, port, api,
} = require('./config'); } = require('./config');
const dummyResponse = require('./dummyResponse.json');
const io = require('socket.io')(port || 3000); const io = require('socket.io')(port || 3000);
const { createSignedJWT, interval } = require('./utils'); const { createSignedJWT, interval } = require('./utils');
const { spawn } = require('child_process');
const dummyResponse = require('./dummyResponse.json');
const useDummy = false; const useDummy = false;
io.of('/').on('connection', (socket) => {
socket.emit('config', { fontSize, rowHeight });
const chrono = useDummy const doScreenApiRequest = (socket, userid = null) => {
? interval(() => { const query = userid ? `?userid=${userid}` : '';
socket.emit('panel_data', dummyResponse); return fetch(`${api.url}/${api.version}/screen/${uuid}${query}`, {
return 15000;
}, 0)
: interval(
() =>
fetch(`${api.url}/${api.version}/screen/${uuid}`, {
headers: { headers: {
Autorization: `Bearer ${createSignedJWT()}`, Autorization: `Bearer ${createSignedJWT()}`,
}, },
...@@ -31,9 +26,23 @@ io.of('/').on('connection', (socket) => { ...@@ -31,9 +26,23 @@ io.of('/').on('connection', (socket) => {
socket.emit('panel_data', res); socket.emit('panel_data', res);
return res.ttl; return res.ttl;
}) })
.catch(console.log), .catch(console.log);
0, };
);
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 // Respond to date message with the date
socket.on('date', () => { socket.on('date', () => {
...@@ -43,4 +52,13 @@ io.of('/').on('connection', (socket) => { ...@@ -43,4 +52,13 @@ io.of('/').on('connection', (socket) => {
socket.on('disconnect', () => { socket.on('disconnect', () => {
chrono.stop(); 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 = {}) => { ...@@ -56,12 +56,12 @@ const interval = (fn, initialTTL, output = {}) => {
Object.assign(output, getOutput(getTimeout(0))); Object.assign(output, getOutput(getTimeout(0)));
return output; return output;
}, },
stop,
restart: (ttl) => { restart: (ttl) => {
stop(); stop();
Object.assign(output, getOutput(getTimeout(ttl || initialTTL))); Object.assign(output, getOutput(getTimeout(ttl || initialTTL)));
return output; return output;
}, },
stop,
restartNow: () => { restartNow: () => {
stop(); stop();
Object.assign(output, getOutput(getTimeout(0))); 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