add.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (c) 2025 gugdun
  2. // All rights reserved. Unauthorized use, copying, or distribution is strictly prohibited.
  3. const path = require("path");
  4. const express = require("express");
  5. const ejs = require("ejs");
  6. const db = require("../db");
  7. const views = path.join(__dirname, "..", "views");
  8. const router = express.Router();
  9. router.get("/add", async (req, res) => {
  10. if (req.user) {
  11. res.render("layout", {
  12. child: await ejs.renderFile(path.join(views, "add.ejs"), {
  13. notFound: req.query.found === "false",
  14. found: req.query.found === "true",
  15. exists: req.query.exists === "true"
  16. })
  17. });
  18. } else {
  19. res.redirect("/login");
  20. }
  21. });
  22. router.post("/add", async (req, res) => {
  23. if (req.user) {
  24. try {
  25. const user = await db.any("SELECT id FROM users WHERE username = $1", [ req.body.username ]);
  26. if (!user[0]) {
  27. res.redirect("/add?found=false");
  28. return;
  29. }
  30. const chat = await db.any("SELECT id FROM chats WHERE (user1_id = $1 AND user2_id = $2) OR (user1_id = $2 AND user2_id = $1)", [ req.user.id, user[0].id ]);
  31. if (chat[0]) {
  32. res.redirect("/add?exists=true");
  33. return;
  34. }
  35. await db.none("INSERT INTO chats (user1_id, user2_id) VALUES ($1, $2)", [ req.user.id, user[0].id ]);
  36. res.redirect("/add?found=true");
  37. } catch (err) {
  38. console.log(err);
  39. res.redirect("/add");
  40. }
  41. } else {
  42. res.redirect("/login");
  43. }
  44. });
  45. module.exports = router;