|
@@ -1116,13 +1116,7 @@ export default {
|
|
|
* @param cb
|
|
|
*/
|
|
|
voteSkip: isLoginRequired(async function voteSkip(session, stationId, cb) {
|
|
|
- const stationModel = await DBModule.runJob(
|
|
|
- "GET_MODEL",
|
|
|
- {
|
|
|
- modelName: "station"
|
|
|
- },
|
|
|
- this
|
|
|
- );
|
|
|
+ const stationModel = await DBModule.runJob("GET_MODEL", { modelName: "station" }, this);
|
|
|
|
|
|
let skipVotes = 0;
|
|
|
let shouldSkip = false;
|
|
@@ -1131,22 +1125,13 @@ export default {
|
|
|
[
|
|
|
next => {
|
|
|
StationsModule.runJob("GET_STATION", { stationId }, this)
|
|
|
- .then(station => {
|
|
|
- next(null, station);
|
|
|
- })
|
|
|
+ .then(station => next(null, station))
|
|
|
.catch(next);
|
|
|
},
|
|
|
|
|
|
(station, next) => {
|
|
|
if (!station) return next("Station not found.");
|
|
|
- return StationsModule.runJob(
|
|
|
- "CAN_USER_VIEW_STATION",
|
|
|
- {
|
|
|
- station,
|
|
|
- userId: session.userId
|
|
|
- },
|
|
|
- this
|
|
|
- )
|
|
|
+ return StationsModule.runJob("CAN_USER_VIEW_STATION", { station, userId: session.userId }, this)
|
|
|
.then(canView => {
|
|
|
if (canView) return next(null, station);
|
|
|
return next("Insufficient permissions.");
|
|
@@ -1190,8 +1175,32 @@ export default {
|
|
|
},
|
|
|
|
|
|
(sockets, next) => {
|
|
|
- if (sockets.length <= skipVotes) shouldSkip = true;
|
|
|
- next();
|
|
|
+ if (sockets.length <= skipVotes) {
|
|
|
+ shouldSkip = true;
|
|
|
+ return next();
|
|
|
+ }
|
|
|
+
|
|
|
+ const users = [];
|
|
|
+
|
|
|
+ return async.each(
|
|
|
+ sockets,
|
|
|
+ (socketId, next) => {
|
|
|
+ WSModule.runJob("SOCKET_FROM_SOCKET_ID", { socketId }, this)
|
|
|
+ .then(socket => {
|
|
|
+ if (socket.session && socket.session.userId) {
|
|
|
+ if (!users.includes(socket.session.userId)) users.push(socket.session.userId);
|
|
|
+ } else users.push(socketId);
|
|
|
+ return next();
|
|
|
+ })
|
|
|
+ .catch(next);
|
|
|
+ },
|
|
|
+ err => {
|
|
|
+ if (err) return next(err);
|
|
|
+
|
|
|
+ if (users.length <= skipVotes) shouldSkip = true;
|
|
|
+ return next();
|
|
|
+ }
|
|
|
+ );
|
|
|
}
|
|
|
],
|
|
|
async err => {
|