diff --git a/APIs/Routes/plugins.js b/APIs/Routes/plugins.js new file mode 100644 index 0000000..f85c118 --- /dev/null +++ b/APIs/Routes/plugins.js @@ -0,0 +1,14 @@ +const express = require("express"); +const { allPlugin } = require("../controllers/pluginsController/allPlugins"); +const { createPlugin } = require("../controllers/pluginsController/createPlugin"); +const { onePlugin } = require("../controllers/pluginsController/onePlugin"); +const router = express.Router(); + +const { isAuthenticated } = require("../middlewares/auth"); + + +router.get("/get-all", isAuthenticated, allPlugin); +router.post("/create-plugin", isAuthenticated, createPlugin); +router.get("/get-one/:plugin", isAuthenticated, onePlugin); + +module.exports = router; \ No newline at end of file diff --git a/APIs/app.js b/APIs/app.js index 7c662eb..bebcf2d 100644 --- a/APIs/app.js +++ b/APIs/app.js @@ -12,6 +12,7 @@ var router = require('./Routes/index'); const folderRoutes = require('./Routes/folder'); const fileRoutes = require('./Routes/file') +const pluginRoutes = require('./Routes/plugins'); var app = express(); app.use(morgan('dev')) @@ -73,6 +74,7 @@ app.get('/logout', (req, res) => { app.use('/api/v1', router); app.use('/api/v1', folderRoutes) app.use('/api/v1', fileRoutes) +app.use('/api/v1', pluginRoutes); app.listen(config.app.port, () => console.log(`\nAPIs are Running on PORT: ${config.app.port} 😎\n`)); diff --git a/APIs/controllers/pluginsController/allPlugins.js b/APIs/controllers/pluginsController/allPlugins.js new file mode 100644 index 0000000..9d86769 --- /dev/null +++ b/APIs/controllers/pluginsController/allPlugins.js @@ -0,0 +1,11 @@ +const { Plugins } = require("../../models/db"); +const { httpStatus200, httpStatus500 } = require("../../status/httpStatus"); + +exports.allPlugin = async (req, res) => { + try { + const plugins = await Plugins.find(); + return res.status(200).json(httpStatus200(plugins, "Plugins")); + } catch (error) { + if (error) res.status(500).json(httpStatus500(error, "message")); + } +}; diff --git a/APIs/controllers/pluginsController/createPlugin.js b/APIs/controllers/pluginsController/createPlugin.js new file mode 100644 index 0000000..863eeb3 --- /dev/null +++ b/APIs/controllers/pluginsController/createPlugin.js @@ -0,0 +1,16 @@ +const { Plugins } = require("../../models/db"); +const { httpStatus200, httpStatus500 } = require("../../status/httpStatus"); + +exports.createPlugin = async (req, res) => { + try { + const plugin = await new Plugins({ + name: req.body.name, + tagline: req.body.tagline, + details: req.body.details + }); + await plugin.save(); + return res.status(200).json(httpStatus200(true, "success")); + } catch (error) { + if (error) res.status(500).json(httpStatus500(error, "message")); + } +}; diff --git a/APIs/controllers/pluginsController/onePlugin.js b/APIs/controllers/pluginsController/onePlugin.js new file mode 100644 index 0000000..b0f36f2 --- /dev/null +++ b/APIs/controllers/pluginsController/onePlugin.js @@ -0,0 +1,14 @@ +const { Plugins } = require("../../models/db"); +const { httpStatus200, httpStatus500 } = require("../../status/httpStatus"); + +exports.onePlugin = async (req, res) => { + try { + const plugin = await Plugins.findOne({name: req.params.plugin}); + if(plugin) + return res.status(200).json(httpStatus200(plugin, "Plugin")); + else + return res.status(404).json({message: "Not Found"}) + } catch (error) { + if (error) res.status(500).json(httpStatus500(error, "message")); + } +}; diff --git a/APIs/models/collections/plugins.js b/APIs/models/collections/plugins.js new file mode 100644 index 0000000..0da2c1d --- /dev/null +++ b/APIs/models/collections/plugins.js @@ -0,0 +1,19 @@ +const mongoose = require("mongoose"); + +const pluginSchema = new mongoose.Schema({ + name: { + type: String, + required: true, + unique: true + }, + tagline: { + type: String, + required: true + }, + details: { + type: [Object], + required: true + } +}); + +module.exports = mongoose.model('Plugin', pluginSchema); diff --git a/APIs/models/db.js b/APIs/models/db.js index aff1a15..404bc08 100644 --- a/APIs/models/db.js +++ b/APIs/models/db.js @@ -43,6 +43,7 @@ db.SharedFiles = require('./collections/sharedFiles'); db.PasswordReset = require('./collections/passwordReset'); db.Folders = require('./collections/folder') db.Files = require('./collections/file') +db.Plugins = require('./collections/plugins'); db.mongoose = mongoose;