domains.handler.js 1.3 KB

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