kutt/server/handlers/domains.handler.js
2024-09-12 14:26:39 +03:30

59 lines
1.3 KiB
JavaScript

const { Handler } = require("express");
const { CustomError, sanitize } = require("../utils");
const query = require("../queries");
const redis = require("../redis");
async function add(req, res) {
const { address, homepage } = req.body;
const domain = await query.domain.add({
address,
homepage,
user_id: req.user.id
});
if (req.isHTML) {
const domains = (await query.domain.get({ user_id: req.user.id })).map(sanitize.domain);
res.setHeader("HX-Reswap", "none");
res.render("partials/settings/domain/table", {
domains
});
return;
}
return res.status(200).send(sanitize.domain(domain));
};
async function remove(req, res) {
const [domain] = await query.domain.update(
{
uuid: req.params.id,
user_id: req.user.id
},
{ user_id: null }
);
redis.remove.domain(domain);
if (!domain) {
throw new CustomError("Could not delete the domain.", 500);
}
if (req.isHTML) {
const domains = (await query.domain.get({ user_id: req.user.id })).map(sanitize.domain);
res.setHeader("HX-Reswap", "outerHTML");
res.render("partials/settings/domain/delete_success", {
domains,
address: domain.address,
});
return;
}
return res.status(200).send({ message: "Domain deleted successfully" });
};
module.exports = {
add,
remove,
}