mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-20 00:29:45 -06:00
Add db methods for statusPage
This commit is contained in:
47
Server/db/mongo/modules/statusPageModule.js
Normal file
47
Server/db/mongo/modules/statusPageModule.js
Normal 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 };
|
||||
Reference in New Issue
Block a user