domains.handler.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const { Handler } = require("express");
  2. const { CustomError, sanitize, sleep } = require("../utils");
  3. const query = require("../queries");
  4. const redis = require("../redis");
  5. async function add(req, res) {
  6. const { address, homepage } = req.body;
  7. const domain = await query.domain.add({
  8. address,
  9. homepage,
  10. user_id: req.user.id
  11. });
  12. await sleep(1000);
  13. if (req.isHTML) {
  14. const domains = (await query.domain.get({ user_id: req.user.id })).map(sanitize.domain);
  15. res.setHeader("HX-Reswap", "none");
  16. res.render("partials/settings/domain/table", {
  17. domains
  18. });
  19. return;
  20. }
  21. return res.status(200).send(sanitize.domain(domain));
  22. };
  23. async function remove(req, res) {
  24. const [domain] = await query.domain.update(
  25. {
  26. uuid: req.params.id,
  27. user_id: req.user.id
  28. },
  29. { user_id: null }
  30. );
  31. redis.remove.domain(domain);
  32. await sleep(1000);
  33. if (!domain) {
  34. throw new CustomError("Could not delete the domain.", 500);
  35. }
  36. if (req.isHTML) {
  37. const domains = (await query.domain.get({ user_id: req.user.id })).map(sanitize.domain);
  38. res.setHeader("HX-Reswap", "outerHTML");
  39. res.render("partials/settings/domain/delete_success", {
  40. domains,
  41. address: domain.address,
  42. });
  43. return;
  44. }
  45. return res.status(200).send({ message: "Domain deleted successfully" });
  46. };
  47. module.exports = {
  48. add,
  49. remove,
  50. }