Added monitor router, controller, and model
This commit is contained in:
1 parent
0abda6fd21
commit
def8ba4b9d
5 files changed
+96
-26
No files matched your search
@@ -0,0 +1,19 @@
|
||||
const { getMonitorsByIdValidation } = require("../validation/joi");
|
||||
|
||||
const getAllMonitors = async (req, res) => {
|
||||
res.json({ message: "Hello from Monitor Controller" });
|
||||
};
|
||||
|
||||
const getMonitorById = async (req, res) => {
|
||||
const { error } = getMonitorsByIdValidation.validate(req.params);
|
||||
if (error) {
|
||||
return res
|
||||
.status(400)
|
||||
.json({ success: false, msg: error.details[0].message });
|
||||
}
|
||||
|
||||
const monitorId = req.params.monitorId;
|
||||
return res.json({ success: true, msg: "Monitor found", data: { monitorId } });
|
||||
};
|
||||
|
||||
module.exports = { getAllMonitors, getMonitorById };
|
||||
+25
-21
@@ -1,28 +1,32 @@
|
||||
const express = require('express')
|
||||
const helmet = require('helmet')
|
||||
const cors = require('cors')
|
||||
const authRouter = require('./routes/authRoute')
|
||||
const { connectDbAndRunServer } = require('./configs/db')
|
||||
require('dotenv').config()
|
||||
const express = require("express");
|
||||
const helmet = require("helmet");
|
||||
const cors = require("cors");
|
||||
const authRouter = require("./routes/authRoute");
|
||||
const monitorRouter = require("./routes/monitorRoute");
|
||||
const { connectDbAndRunServer } = require("./configs/db");
|
||||
require("dotenv").config();
|
||||
// const { sendEmail } = require('./utils/sendEmail')
|
||||
|
||||
/**
|
||||
* NOTES
|
||||
* Email Service will be added
|
||||
* Email Service will be added
|
||||
* Logger Service will be added (Winston or similar)
|
||||
*/
|
||||
|
||||
const app = express()
|
||||
const app = express();
|
||||
|
||||
// middlewares
|
||||
app.use(cors(
|
||||
//We will add configuration later
|
||||
))
|
||||
app.use(express.json())
|
||||
app.use(helmet())
|
||||
app.use(
|
||||
cors()
|
||||
//We will add configuration later
|
||||
);
|
||||
app.use(express.json());
|
||||
app.use(helmet());
|
||||
|
||||
//routes
|
||||
app.use('/api/v1/auth', authRouter);
|
||||
app.use("/api/v1/auth", authRouter);
|
||||
|
||||
app.use("/api/v1/monitors", monitorRouter);
|
||||
|
||||
// Testing email service
|
||||
// app.use('/sendEmail', async (req, res) => {
|
||||
@@ -31,12 +35,12 @@ app.use('/api/v1/auth', authRouter);
|
||||
// })
|
||||
|
||||
//health check
|
||||
app.use('/api/v1/healthy', (req, res) => {
|
||||
try {
|
||||
return res.status(200).json({message:"Healthy"})
|
||||
} catch (error) {
|
||||
return res.status(500).json({message:error.message})
|
||||
}
|
||||
})
|
||||
app.use("/api/v1/healthy", (req, res) => {
|
||||
try {
|
||||
return res.status(200).json({ message: "Healthy" });
|
||||
} catch (error) {
|
||||
return res.status(500).json({ message: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
connectDbAndRunServer(app);
|
||||
@@ -0,0 +1,37 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const MonitorSchema = mongoose.Schema({
|
||||
userId: {
|
||||
type: String,
|
||||
},
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
description: {
|
||||
type: String,
|
||||
},
|
||||
url: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
isActive: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
interval: {
|
||||
// in milliseconds
|
||||
type: Number,
|
||||
default: 60000,
|
||||
},
|
||||
updated_at: {
|
||||
type: Date,
|
||||
default: Date.now,
|
||||
},
|
||||
created_at: {
|
||||
type: Date,
|
||||
default: Date.now,
|
||||
},
|
||||
});
|
||||
|
||||
module.exports = mongoose.model("Monitor", MonitorSchema);
|
||||
@@ -0,0 +1,8 @@
|
||||
const router = require("express").Router();
|
||||
const monitorController = require("../controllers/monitorController");
|
||||
const { getMonitorsByIdValidation } = require("../validation/joi");
|
||||
|
||||
router.get("/", monitorController.getAllMonitors);
|
||||
router.get("/:monitorId", monitorController.getMonitorById);
|
||||
|
||||
module.exports = router;
|
||||
@@ -1,10 +1,12 @@
|
||||
const joi = require('joi')
|
||||
|
||||
const joi = require("joi");
|
||||
|
||||
const authValidation = joi.object({
|
||||
email: joi.string().email().required(),
|
||||
password: joi.string().min(8).required(),
|
||||
email: joi.string().email().required(),
|
||||
password: joi.string().min(8).required(),
|
||||
});
|
||||
|
||||
const getMonitorsByIdValidation = joi.object({
|
||||
monitorId: joi.string().required(),
|
||||
});
|
||||
|
||||
module.exports = {authValidation}
|
||||
module.exports = { authValidation, getMonitorsByIdValidation };
|
||||
Reference in new issue
Block a user