const { INVITED_TO_CALL, INVITED_TO_JOIN, CALL_ACCEPTED, CALL_DENIED, INVITE_DENIED, CALL_IN_PROGRESS, CALL_STARTED, MAPPER_JOINED_CALL, MAPPER_LEFT_CALL, CHECK_FOR_CALL, ACCEPT_CALL, DENY_CALL, DENY_INVITE, INVITE_TO_JOIN, INVITE_A_CALL, JOIN_CALL, LEAVE_CALL } = require('../frontend/src/Metamaps/Realtime/events') const { mapRoom, userMapRoom } = require('./rooms') module.exports = function (io, store) { io.on('connection', function (socket) { socket.on(CHECK_FOR_CALL, function (data) { var callInProgress = Object.keys(io.nsps['/'].adapter.rooms[data.room] || {}).length if (callInProgress) socket.emit(CALL_IN_PROGRESS) }) socket.on(INVITE_A_CALL, function (data) { socket.broadcast.in(userMapRoom(data.invited, data.mapid)).emit(INVITED_TO_CALL, data.inviter) }) socket.on(INVITE_TO_JOIN, function (data) { socket.broadcast.in(userMapRoom(data.invited, data.mapid)).emit(INVITED_TO_JOIN, data.inviter) }) socket.on(ACCEPT_CALL, function (data) { socket.broadcast.in(userMapRoom(data.inviter, data.mapid)).emit(CALL_ACCEPTED, data.invited) socket.broadcast.in(mapRoom(data.mapid)).emit(CALL_STARTED) }) socket.on(DENY_CALL, function (data) { socket.broadcast.in(userMapRoom(data.inviter, data.mapid)).emit(CALL_DENIED, data.invited) }) socket.on(DENY_INVITE, function (data) { socket.broadcast.in(userMapRoom(data.inviter, data.mapid)).emit(INVITE_DENIED, data.invited) }) socket.on(JOIN_CALL, function (data) { socket.broadcast.in(mapRoom(data.mapid)).emit(MAPPER_JOINED_CALL, data.id) }) socket.on(LEAVE_CALL, function (data) { socket.broadcast.in(mapRoom(data.mapid)).emit(MAPPER_LEFT_CALL, data.id) }) }) }