Add db methods for statusPage

This commit is contained in:
Alex Holliday
2024-11-11 12:16:34 +08:00
parent cc0ecf2b12
commit 505de31fe0

View File

@@ -0,0 +1,47 @@
import StatusPage from "../../models/StatusPage.js";
import { errorMessages } from "../../../utils/messages.js";
const SERVICE_NAME = "statusPageModule";
const createStatusPage = async (statusPageData) => {
try {
const isUnique = await urlIsUnique(statusPageData.url);
if (!isUnique) {
const error = new Error(errorMessages.STATUS_PAGE_URL_NOT_UNIQUE);
error.status = 400;
throw error;
}
const statusPage = new StatusPage({ ...statusPageData });
await statusPage.save();
return statusPage;
} catch (error) {
error.service = SERVICE_NAME;
error.method = "createStatusPage";
throw error;
}
};
const getStatusPageByUrl = async (url) => {
try {
const statusPage = await StatusPage.findOne({ url });
if (statusPage === null || statusPage === undefined) {
const error = new Error(errorMessages.STATUS_PAGE_NOT_FOUND);
error.status = 404;
throw error;
}
return statusPage;
} catch (error) {
error.service = SERVICE_NAME;
error.method = "getStatusPageByUrl";
throw error;
}
};
const urlIsUnique = async (url) => {
const statusPage = await StatusPage.find({ url });
if (statusPage.length > 0) return false;
return true;
};
export { createStatusPage, getStatusPageByUrl };