Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions API/users.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
const express = require("express")
const router = express.Router()
const { User, validateUser } = require("../models/user")
const jwt = require('jsonwebtoken')
// const { server } = require('../server');
// const io = require('socket.io')(server);
// const auth = require("../middleware/auth");
// const admin = require("../middleware/admin");
const auth = require("../middleware/auth");
// const admin = require("../middleware/admin");

router.get('/', async(req, res) => {
router.get('/', auth, async(req, res) => {
const users = await User.find().sort('lastName')
res.status(200).send(users)
//get all users
})

router.get('/:id', async(req, res) => {
router.get('/:id', auth, async(req, res) => {
const user = await User.findOne({ employeeId: req.params.id })
if (!user) {
return res.status(404).send({ message: 'employee with searched ID not found' })
Expand Down
38 changes: 19 additions & 19 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ const server = require('http').createServer(app);

const logger = require("./middleware/logger");

global.GLOBAL_TIMEZONE = "en-US"
global.GLOBAL_TIMEZONE = "en-US"

require("./startup/db")().then(()=>{
socketSetUp(server);
require("./startup/db")().then(() => {
socketSetUp(server);
});
// require("./startup/orderBundles");
require("./startup/routes")(app);
Expand All @@ -19,27 +19,27 @@ require("./startup/config")();

const port = process.env.PORT || config.get("app.port")

server.listen(port, () =>{
logger.log("info", "server mode: " + process.env.NODE_ENV);
logger.log("info", "listening on port: " + port);
server.listen(port, () => {
logger.log("info", "server mode: " + process.env.NODE_ENV);
logger.log("info", "listening on port: " + port);
});

module.exports = server;

async function socketSetUp (server){
const stores = await getStores()
require("./socket/router").socketIO(server, stores);
async function socketSetUp(server) {
const stores = await getStores()
require("./socket/router").socketIO(server, stores);
}

const getStores = () => {
return new Promise((resolve, rejecet)=>{
let storesObj = {}
require("./models/store").Store.find()
.then(stores=>{
stores.forEach(store=>{
storesObj[store.storeId] = {users: {}, manager: false}
});
resolve(storesObj)
});
})
return new Promise((resolve, reject) => {
let storesObj = {}
require("./models/store").Store.find()
.then(stores => {
stores.forEach(store => {
storesObj[store.storeId] = { users: {}, manager: false }
});
resolve(storesObj)
});
})
};
65 changes: 32 additions & 33 deletions socket/endpoints/logIn.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
module.exports = function (socket, user, users, rooms, spectators) {
module.exports = function(socket, user, users, rooms, spectators) {

users[socket.id] = user.id;

switch(user.role){
switch (user.role) {
case "manager":

if(storeExists(user.store) === undefined){
if (storeExists(user.store) === undefined) {

io.to(findUserSocket(user.id)).emit("error", "this store does not exist")
console.log(`Socket:`, user.id ,`${user.role} tried to join store-${user.store} undefined`)
}else if(managerIsActive(user.store) === true){
console.log(`Socket:`, user.id, `${user.role} tried to join store-${user.store} undefined`)

} else if (managerIsActive(user.store) === true) {

io.to(findUserSocket(user.id)).emit("error", "manager is already in this store");
console.log(`Socket:`, user.id , `${user.role} tried to join store-${user.store} with an active manager`);
console.log(`Socket:`, user.id, `${user.role} tried to join store-${user.store} with an active manager`);

}else if(managerIsActive(user.store) === false){
} else if (managerIsActive(user.store) === false) {

socket.join(user.store);

Expand All @@ -27,48 +27,47 @@ module.exports = function (socket, user, users, rooms, spectators) {
console.log(`Socket:`, user.id, `${user.role} connected to room store-${user.store}`);
};

break;
break;

case "driver":
if(storeExists(user.store) === undefined){
if (storeExists(user.store) === undefined) {

io.to(findUserSocket(user.id)).emit("error", "this store does not exist");
console.log(`Socket:`, user.id ,`${user.role} tried to join store-${user.store} undefined`);
console.log(`Socket:`, user.id, `${user.role} tried to join store-${user.store} undefined`);

} else if (managerIsActive(user.store) === false) {

}else if(managerIsActive(user.store) === false){

io.to(findUserSocket(user.id)).emit("error", "there is no manager in this store");
console.log(`Socket:`, user.id , `${user.role} tried to join store-${user.store} without an active manager`);
}else if(managerIsActive(user.store) === true){
console.log(`Socket:`, user.id, `${user.role} tried to join store-${user.store} without an active manager`);

} else if (managerIsActive(user.store) === true) {

socket.join(user.store);

rooms[user.store].users[user.id] = user.role;

socket.to(user.store).broadcast.emit("current-users", rooms[user.store]);

console.log(`Socket:`, user.id, `${user.role} connected to room store-${user.store}`);
}
break;
break;

case "spectator":
console.log("case", 7)
break;
break;
}


}

function storeExists(userStore){
function storeExists(userStore) {
return rooms[userStore];
}
function managerIsActive(userStore){
}

function managerIsActive(userStore) {
return rooms[userStore].manager === true;
}

function findUserSocket(userId){
return Object.keys(users).find( socketId =>{return users[socketId] == userId})
}

}

function findUserSocket(userId) {
return Object.keys(users).find(socketId => { return users[socketId] == userId })
}
Loading