domains.handler.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. redis.remove.domain(domain);
  31. if (!domain) {
  32. throw new CustomError("Could not delete the domain.", 500);
  33. }
  34. if (req.isHTML) {
  35. const domains = (await query.domain.get({ user_id: req.user.id })).map(sanitize.domain);
  36. res.setHeader("HX-Reswap", "outerHTML");
  37. res.render("partials/settings/domain/delete_success", {
  38. domains,
  39. address: domain.address,
  40. });
  41. return;
  42. }
  43. return res.status(200).send({ message: "Domain deleted successfully" });
  44. };
  45. module.exports = {
  46. add,
  47. remove,
  48. }