diff --git a/rce-server/server/api/controllers/Interview/controller.js b/rce-server/server/api/controllers/Interview/controller.js index 3fc7562..9bd46bc 100644 --- a/rce-server/server/api/controllers/Interview/controller.js +++ b/rce-server/server/api/controllers/Interview/controller.js @@ -1,9 +1,32 @@ -import Server from "../../../common/server"; +import InterviewService from "../../services/interview.service"; +const BASE_URI = process.env.BASE_URI; export class Controller { async connect(req, res) { - const uid = req.params.uid; - console.log(uid); + try { + if (!req.user) { + throw { + message: "User must be logged in!!", + }; + } else { + const uid = req.params.uid; + const link = `${BASE_URI}/interview/${uid}`; + console.log(uid); + output = await InterviewService.execute(link, user); + if (output) { + res.json({ + status: 200, + message: "Connected to interview", + output, + }); + } + } + } catch (error) { + res.send({ + status: error.status || "500", + message: error.message || "Something Went Wrong", + }); + } } } diff --git a/rce-server/server/api/controllers/Interview/router.js b/rce-server/server/api/controllers/Interview/router.js index be60390..e94bd35 100644 --- a/rce-server/server/api/controllers/Interview/router.js +++ b/rce-server/server/api/controllers/Interview/router.js @@ -1,4 +1,5 @@ import * as express from "express"; import controller from "./controller"; +import isLoggedIn from "../../middlewares/isLogged.handler"; -export default express.Router().post("/:uid", controller.connect); +export default express.Router().get("/:uid", isLoggedIn, controller.connect); diff --git a/rce-server/server/api/controllers/Links/controller.js b/rce-server/server/api/controllers/Links/controller.js index f6373b1..0413487 100644 --- a/rce-server/server/api/controllers/Links/controller.js +++ b/rce-server/server/api/controllers/Links/controller.js @@ -3,7 +3,7 @@ import LinkService from "../../services/link.service"; export class Controller { async generateLink(req, res) { try { - console.log(req.user); + // console.log(req.user); if (!req.user) { throw { message: "User must be logged in!!", diff --git a/rce-server/server/api/controllers/Links/router.js b/rce-server/server/api/controllers/Links/router.js index c508f62..4de5fa0 100644 --- a/rce-server/server/api/controllers/Links/router.js +++ b/rce-server/server/api/controllers/Links/router.js @@ -6,5 +6,5 @@ export default express .Router() .post("/generate", isLoggedIn, controller.generateLink) .post("/delete", isLoggedIn, controller.deleteLink) - .post("/addEmail", isLoggedIn, controller.addEmail) - .post("/removeEmail", isLoggedIn, controller.removeEmail); + .put("/addEmail", isLoggedIn, controller.addEmail) + .put("/removeEmail", isLoggedIn, controller.removeEmail); diff --git a/rce-server/server/api/services/interview.service.js b/rce-server/server/api/services/interview.service.js new file mode 100644 index 0000000..0ca99f5 --- /dev/null +++ b/rce-server/server/api/services/interview.service.js @@ -0,0 +1,27 @@ +import mongoose from "mongoose"; +const Link = require("../../models/link"); + +class InterviewService { + async execute(link, user) { + try { + const isLink = await Link.findOne({ link }) + .populate("interviewer") + .populate("interviewee"); + if (isLink) { + if (user._id.toString() == isLink.interviewer.toString()) { + return isLink; + } else { + } + } else { + throw { + status: 404, + message: "Invalid link", + }; + } + } catch (error) { + throw error; + } + } +} + +export default new InterviewService(); diff --git a/rce-server/server/api/services/link.service.js b/rce-server/server/api/services/link.service.js index a06b4b9..d888958 100644 --- a/rce-server/server/api/services/link.service.js +++ b/rce-server/server/api/services/link.service.js @@ -7,7 +7,7 @@ class LinkService { async generate(user) { try { const uid = crypto.randomBytes(16).toString("hex"); - const link = BASE_URI + uid; + const link = `${BASE_URI}/interview/${uid}`; const generatedLink = await Link.create({ link,