Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. 'use strict';
  2.  
  3. const express = require('express');
  4. const socketIO = require('socket.io');
  5. const path = require('path');
  6. const async = require('async');
  7.  
  8. const PORT = process.env.PORT || 8080;
  9.  
  10. var mysql = require('mysql');
  11.  
  12. var connection = require('./mysqlconnection')
  13.  
  14. connection.connect();
  15.  
  16. const app = express()
  17. .use(express.static(__dirname + '/public'))
  18. .set('view engine', 'pug');
  19.  
  20. app.set('views', __dirname + '/views');
  21.  
  22. app.locals.moment = require('moment');
  23.  
  24. const http = require('http').createServer(app);
  25. const io = socketIO(http);
  26.  
  27. http.listen(PORT);
  28.  
  29. app.get('/admin', function(req, res){
  30.  
  31. var allrooms;
  32.  
  33. async.parallel([
  34. function(callback){
  35. connection.query('SELECT * from rooms', function(err, rows, fields) {
  36. if (!err){
  37. console.log(rows);
  38. allrooms = rows;
  39. callback();
  40. }
  41. else
  42. console.log('Error while performing Query.');
  43. });
  44. },
  45. ],
  46.  
  47. function(callback){
  48. res.render('admin', {port: PORT, pageData: [allrooms]});
  49. });
  50. });
  51.  
  52.  
  53. app.get('/', function(req, res){
  54.  
  55. var allrooms, lastRoomGroup;
  56. var allRoomsFormatted = [];
  57. var groupNames = [];
  58. var workingGroup = [];
  59.  
  60. async.parallel([
  61.  
  62. function(callback) {
  63. connection.query('SELECT * from rooms ORDER BY `group`, id', function(err, rows, fields) {
  64. if (!err){
  65. allrooms = rows;
  66. callback();
  67. }
  68. else
  69. console.log('Error while performing Query.');
  70. });
  71. },
  72.  
  73. ],
  74. function(){
  75. allrooms.forEach(
  76. function(entry){
  77. if(groupNames.indexOf(entry.group) === -1){
  78. groupNames.push(entry.group);
  79. }
  80. if(entry.group !== lastRoomGroup && lastRoomGroup !== undefined){
  81. allRoomsFormatted.push(workingGroup);
  82. workingGroup = [];
  83. }
  84. workingGroup.push(entry);
  85. lastRoomGroup = entry.group;
  86. }
  87. );
  88. allRoomsFormatted.push(workingGroup);
  89. console.log(allRoomsFormatted);
  90. res.render('page', {port: PORT, pageData: [groupNames, allRoomsFormatted]});
  91. });
  92. });
  93.  
  94. io.on('connection', (socket) => {
  95. console.log('Client connected');
  96. socket.on('roomout', (message) => io.emit('debateOut', message));
  97. socket.on('roomout', (message) => connection.query('UPDATE rooms SET status = "out" WHERE roomname = "' + message + '"'))
  98. socket.on('ballotgot', (message) => io.emit('ballotGot', message));
  99. socket.on('ballotgot', (message) => connection.query('UPDATE rooms SET status = "ballotgot" WHERE roomname = "' + message + '"'))
  100. socket.on('debateStart', (message) => io.emit('debateStart', message));
  101. socket.on('debateStart', (message) => connection.query('UPDATE rooms SET status = "in" WHERE roomname = "' + message + '"'))
  102. socket.on('blanket', (message) => io.emit('blanket', message));
  103. socket.on('blanket', (message) => connection.query('UPDATE rooms SET status = "noDebate" WHERE roomname = "' + message + '"'))
  104. socket.on('disconnect', () => console.log('Client disconnected'));
  105. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement