diff --git a/middlewareNode/src/models/categorys.js b/middlewareNode/src/models/categorys.js index 33e3013e..3abe614c 100644 --- a/middlewareNode/src/models/categorys.js +++ b/middlewareNode/src/models/categorys.js @@ -21,4 +21,4 @@ const categorySchema = new mongoose.Schema({ }, }); -module.exports = categorys = model("categorys", categorySchema); +module.exports = model("categorys", categorySchema); diff --git a/middlewareNode/src/models/meetings.js b/middlewareNode/src/models/meetings.js index 5b4ea7d2..f33029b1 100644 --- a/middlewareNode/src/models/meetings.js +++ b/middlewareNode/src/models/meetings.js @@ -70,4 +70,4 @@ const meetingsSchema = new mongoose.Schema( { versionKey: false }, ); -module.exports = meetings = model("meetings", meetingsSchema, "meetings"); +module.exports = model("meetings", meetingsSchema, "meetings"); diff --git a/middlewareNode/src/models/moves.js b/middlewareNode/src/models/moves.js index ea29ecd0..a3441c8e 100644 --- a/middlewareNode/src/models/moves.js +++ b/middlewareNode/src/models/moves.js @@ -33,4 +33,4 @@ const movesSchema = new mongoose.Schema( { versionKey: false }, ); -module.exports = gameMoves = model("gameMoves", movesSchema, "gameMoves"); +module.exports = model("gameMoves", movesSchema, "gameMoves"); diff --git a/middlewareNode/src/models/puzzles.js b/middlewareNode/src/models/puzzles.js index 6a0edeee..b74e9996 100644 --- a/middlewareNode/src/models/puzzles.js +++ b/middlewareNode/src/models/puzzles.js @@ -53,4 +53,4 @@ const puzzleSchema = new mongoose.Schema( { versionKey: false }, ); -module.exports = puzzles = model("puzzles", puzzleSchema); +module.exports = model("puzzles", puzzleSchema); diff --git a/middlewareNode/src/models/undoPermission.js b/middlewareNode/src/models/undoPermission.js index 4e3b43ad..0621f62f 100644 --- a/middlewareNode/src/models/undoPermission.js +++ b/middlewareNode/src/models/undoPermission.js @@ -24,4 +24,4 @@ const undoPermissionSchema = new mongoose.Schema( { versionKey: false }, ); -module.exports = undoPermission = model("undoPermission", undoPermissionSchema); +module.exports = model("undoPermission", undoPermissionSchema); diff --git a/middlewareNode/src/models/users.js b/middlewareNode/src/models/users.js index dc20102f..c752560a 100644 --- a/middlewareNode/src/models/users.js +++ b/middlewareNode/src/models/users.js @@ -57,86 +57,10 @@ const usersSchema = new mongoose.Schema( lessonNumber: Number, }, ], - default: () => [ - { - piece: 'Piece Checkmate 1 Basic checkmates', - lessonNumber: 0 - }, - { - piece: 'Checkmate Pattern 1 Recognize the patterns', - lessonNumber: 0 - }, - { - piece: 'Checkmate Pattern 2 Recognize the patterns', - lessonNumber: 0 - }, - { - piece: 'Checkmate Pattern 3 Recognize the patterns', - lessonNumber: 0 - }, - { - piece: 'Checkmate Pattern 4 Recognize the patterns', - lessonNumber: 0 - }, - { - piece: 'Piece checkmates 2 Challenging checkmates', - lessonNumber: 0 - }, - { - piece: 'Knight and Bishop Mate interactive lesson', - lessonNumber: 0 - }, - { piece: 'The Pin Pin it to win it', lessonNumber: 0 }, - { piece: 'The Skewer Yum - Skewers!', lessonNumber: 0 }, - { piece: 'The Fork Use the fork, Luke', lessonNumber: 0 }, - { - piece: 'Discovered Attacks Including discovered checks', - lessonNumber: 0 - }, - { piece: 'Double Check A very powerfull tactic', lessonNumber: 0 }, - { - piece: 'Overloaded Pieces They have too much work', - lessonNumber: 0 - }, - { piece: 'Zwischenzug In-between moves', lessonNumber: 0 }, - { piece: 'X-Ray Attacking through an enemy piece', lessonNumber: 0 }, - { piece: 'Zugzwang Being forced to move', lessonNumber: 0 }, - { - piece: 'Interference Interpose a piece to great effect', - lessonNumber: 0 - }, - { - piece: 'Greek Gift Study the greek gift scrifice', - lessonNumber: 0 - }, - { piece: 'Deflection Distracting a defender', lessonNumber: 0 }, - { piece: 'Attraction Lure a piece to bad square', lessonNumber: 0 }, - { - piece: 'Underpromotion Promote - but not to a queen!', - lessonNumber: 0 - }, - { - piece: 'Desperado A piece is lost, but it can still help', - lessonNumber: 0 - }, - { - piece: 'Counter Check Respond to a check with a check', - lessonNumber: 0 - }, - { piece: 'Undermining Remove the defending piece', lessonNumber: 0 }, - { piece: 'Clearance Get out of the way!', lessonNumber: 0 }, - { piece: 'Key Squares Reach the key square', lessonNumber: 0 }, - { piece: 'Opposition take the opposition', lessonNumber: 0 }, - { piece: '7th-Rank Rook Pawn Versus a Queen', lessonNumber: 0 }, - { - piece: '7th-Rank Rook Pawn And Passive Rook vs Rook', - lessonNumber: 0 - }, - { piece: 'Basic Rook Endgames Lucena and Philidor', lessonNumber: 0 } - ], + default: () => require("./defaultLessons"), }, }, { versionKey: false }, ); -module.exports = users = model("users", usersSchema); +module.exports = model("users", usersSchema); diff --git a/middlewareNode/src/routes/activities.js b/middlewareNode/src/routes/activities.js index 4fbe24e3..b085d8dd 100644 --- a/middlewareNode/src/routes/activities.js +++ b/middlewareNode/src/routes/activities.js @@ -12,9 +12,7 @@ const config = require("config"); const express = require('express'); -const passport = require("passport"); const router = express.Router({mergeParams: true}); -const jwt = require('jsonwebtoken'); const { MongoClient, ObjectId } = require('mongodb'); require('dotenv').config(); diff --git a/middlewareNode/src/routes/meetings.js b/middlewareNode/src/routes/meetings.js index f7168749..2c1a50bd 100644 --- a/middlewareNode/src/routes/meetings.js +++ b/middlewareNode/src/routes/meetings.js @@ -15,19 +15,18 @@ const express = require("express"); const passport = require("passport"); -const crypto = require("crypto"); const jwt = require("jsonwebtoken"); const AWS = require("aws-sdk"); -const axios = require("axios"); const config = require("config"); const requestIp = require("request-ip"); const { v4: uuidv4 } = require("uuid"); const router = express.Router(); -const { check, validationResult, query } = require("express-validator"); +const { check, validationResult } = require("express-validator"); const { waitingStudents, waitingMentors } = require("../models/waiting"); const meetings = require("../models/meetings"); const movesList = require("../models/moves"); const undoPermission = require("../models/undoPermission"); +const users = require("../models/users"); const { startRecording, stopRecording } = require("../utils/recordings"); // State variable to prevent concurrent pairing operations @@ -264,8 +263,9 @@ router.post("/pairUp", passport.authenticate("jwt"), async (req, res) => { let mentorInfo = {}; //Get a first person in queue from either waitingMentors or waitingStudents collection + let waitingQueue; if (role === "student") { - waitingQueue = await waitingMentors.findOne( + Justueue = await waitingMentors.findOne( {}, {}, { sort: { created_at: 1 } }, diff --git a/middlewareNode/src/utils/recordings.js b/middlewareNode/src/utils/recordings.js index c9d16fdc..227d963f 100644 --- a/middlewareNode/src/utils/recordings.js +++ b/middlewareNode/src/utils/recordings.js @@ -128,7 +128,9 @@ const stopRecording = async (meetingID, resourceId, sid) => { username: config.get("customerId") || "", password: config.get("customerCertificate") || "", }; - let newQueryURL = `https://api.agora.io/v1/apps/${config.appID}/cloud_recording/resourceid/${resourceId}/sid/${sid}/mode/mix/stop`; + // config keys use get("appID") elsewhere + const appId = config.get("appID"); + let newQueryURL = `https://api.agora.io/v1/apps/${appId}/cloud_recording/resourceid/${resourceId}/sid/${sid}/mode/mix/stop`; const body = { uid: config.get("uid"), cname: meetingID, @@ -147,8 +149,9 @@ const stopRecording = async (meetingID, resourceId, sid) => { return "Could not stop recording. Server error."; } - return response.data.serverResponse; + return response.data || response; } catch (error) { + console.error("stopRecording error:", error?.message || error); return "Could not stop recording. Server error."; } };