From 2bc5041f086991d221545492aeb83e6a15f3a0f5 Mon Sep 17 00:00:00 2001 From: mark H Date: Tue, 27 Aug 2024 17:49:07 +0800 Subject: [PATCH] update --- controllers/collection.js | 13 ++---- controllers/endpoint.js | 96 +++++++++++++++++++++++++++++++++++++++ index.js | 23 +++++++--- middleware/log.js | 2 +- models/Collection.js | 38 ++++------------ models/Endpoint.js | 67 +++++++++++++++++++++++++++ routes/collection.js | 33 ++++++++++++-- routes/endpoint.js | 48 ++++++++++++++++++++ routes/users.js | 67 ++++++++++++++++++++++----- 9 files changed, 325 insertions(+), 62 deletions(-) create mode 100644 controllers/endpoint.js create mode 100644 models/Endpoint.js create mode 100644 routes/endpoint.js diff --git a/controllers/collection.js b/controllers/collection.js index 601f89b..44a8834 100644 --- a/controllers/collection.js +++ b/controllers/collection.js @@ -2,14 +2,9 @@ import Collection from "../models/Collection.js"; export const createCollection = async (req, res, next) => { const newCollection = new Collection({ - full_name: req.body.full_name, - date_of_birth: req.body.date_of_birth, - userRef: req.body.userRef, - id_num: req.body.id_num, - address: req.body.address, - images: req.body.images, - selfie: req.body.selfie, - status: req.body.status, + name: req.body.name, + created_by: req.body.created_by, + header: req.body.header, }); console.log(req.body); try { @@ -18,7 +13,7 @@ export const createCollection = async (req, res, next) => { console.log(savedCollection); } catch (err) { // console.log(req.body); - + res.status(400).json({ message: err.message }); next(err); diff --git a/controllers/endpoint.js b/controllers/endpoint.js new file mode 100644 index 0000000..eb37203 --- /dev/null +++ b/controllers/endpoint.js @@ -0,0 +1,96 @@ +import Endpoint from "../models/Endpoint.js"; + +export const createEndpoint = async (req, res, next) => { + const newEndpoint = new Endpoint({ + name: req.body.name, + endpoint: req.body.endpoint, + method: req.body.method, + collection_id: req.body.collection_id, + created_by: req.body.created_by, + body_json: req.body.body_json, + form_data: req.body.form_data, + header: req.body.header, + params: req.body.params, + }); + console.log(req.body); + try { + const savedEndpoint = await newEndpoint.save(); + res.status(200).json(savedEndpoint); + console.log(savedEndpoint); + } catch (err) { + // console.log(req.body); + + res.status(400).json({ message: err.message }); + + next(err); + } +}; + +export const updateEndpoint = async (req, res, next) => { + try { + console.log(req.params.id); + const updatedEndpoint = await Endpoint.findByIdAndUpdate( + req.params.id, + { $set: req.body }, + { new: true } + ); + if (updatedEndpoint) { + res.status(200).json(updatedEndpoint); + } else { + res.status(200).json("Endpoint does not exist."); + } + } catch (err) { + next(err); + } +}; + +export const deleteEndpoint = async (req, res, next) => { + try { + const getEndpoint = await Endpoint.findByIdAndDelete(req.params.id); + if (getEndpoint) { + res.status(200).json("Endpoint has been deleted."); + } else { + res.status(404).json("Endpoint does not exist."); + } + } catch (err) { + res.status(404).json({ message: err.message }); + + next(err); + } +}; +export const getEndpoints = async (req, res, next) => { + try { + const getEndpoint = await Endpoint.find(); + // const Endpoint = getEndpoint.reverse(); + if (getEndpoint) { + res.status(200).json(getEndpoint); + } else { + res.status(404).json("Endpoint does not exist."); + } + } catch (err) { + res.status(404).json({ message: err.message }); + + next(err); + } +}; +export const getEndpoint = async (req, res, next) => { + try { + const foundEndpoint = await Endpoint.findById(req.params.id) + .populate({ + path: "userRef", + model: "User", + // select: "fName lName username photo", + }) + + .exec(); + + if (foundEndpoint) { + res.status(200).json(foundEndpoint); + } else { + res.status(404).json("Endpoint does not exist."); + } + } catch (err) { + res.status(500).json({ message: err.message }); + next(err); + } +}; diff --git a/index.js b/index.js index eb2b196..b46c4e6 100644 --- a/index.js +++ b/index.js @@ -10,7 +10,8 @@ import path from "path"; import { fileURLToPath } from "url"; import authRoutes from "./routes/auth.js"; import userRoutes from "./routes/users.js"; -import transactionRoutes from "./routes/collection.js"; +import collectionRoutes from "./routes/collection.js"; +import endpointRoutes from "./routes/endpoint.js"; // import webemailRoutes from "./routes/webemail.js"; import axios from "axios"; @@ -70,7 +71,8 @@ const upload = multer({ storage }); /* ROUTES */ app.use("/api/auth", authRoutes); app.use("/api/users", userRoutes); -app.use("/api/transactions", transactionRoutes); +app.use("/api/collections", collectionRoutes); +app.use("/api/endpoints", endpointRoutes); // app.use("/api/web-emails", webemailRoutes); app.post("/api/upload_images", upload.single("image"), async (req, res) => { @@ -142,11 +144,20 @@ function sendEmail(req, res, next) { app.post("/api/send-email/", sendEmail); /* MONGOOSE SETUP */ const PORT = process.env.PORT || 3000; +// mongoose +// .connect(process.env.MONGO_URL, { +// useNewUrlParser: true, +// useUnifiedTopology: true, +// }) +// .then(() => { +// app.listen(PORT, () => console.log(`Server Port: ${PORT}`)); + +// // /* ADD DATA ONE TIME */ +// }) +// .catch((error) => console.log(`${error} did not connect`)); + mongoose - .connect(process.env.DATABASE_URL, { - useNewUrlParser: true, - useUnifiedTopology: true, - }) + .connect(process.env.MONGO_URL) .then(() => { app.listen(PORT, () => console.log(`Server Port: ${PORT}`)); diff --git a/middleware/log.js b/middleware/log.js index f4876b1..eee3054 100644 --- a/middleware/log.js +++ b/middleware/log.js @@ -7,7 +7,7 @@ const logApiCall = async (req, res, next) => { // Create a log entry const logEntry = new Log({ - userId: userId, + userId: req.body.created_by, method: req.method, endpoint: req.originalUrl, body: req.body, diff --git a/models/Collection.js b/models/Collection.js index b8654e4..968e988 100644 --- a/models/Collection.js +++ b/models/Collection.js @@ -2,47 +2,25 @@ import mongoose from "mongoose"; const CollectionSchema = mongoose.Schema( { - full_name: { + name: { type: String, - // required: true, + // required: true, }, - date_of_birth: { - type: String, - // required: true, - }, - userRef: { + created_by: { type: mongoose.Schema.Types.ObjectId, ref: "User", }, - id_num: { - type: String, - // required: true, - }, - address: { - type: String, - // required: true, - }, - images: [ + header: [ { - link: { + key: { + type: String, + }, + value: { type: String, }, //required: true, }, ], - selfie: { - type: String, - //required: true, - }, - reason: { - type: String, - //required: true, - }, - status: { - type: String, - default: "new", - // required: true, - }, }, { timestamps: true } ); diff --git a/models/Endpoint.js b/models/Endpoint.js new file mode 100644 index 0000000..782b582 --- /dev/null +++ b/models/Endpoint.js @@ -0,0 +1,67 @@ +import mongoose from "mongoose"; + +const EndpointSchema = mongoose.Schema( + { + endpoint: { + type: String, + // required: true, + }, + name: { + type: String, + // required: true, + }, + method: { + type: String, + // required: true, + }, + collection_id: { + type: mongoose.Schema.Types.ObjectId, + ref: "Collection", + }, + created_by: { + type: mongoose.Schema.Types.ObjectId, + ref: "User", + }, + body_json: { + type: String, + }, + form_data: [ + { + key: { + type: String, + }, + value: { + type: String, + }, + //required: true, + }, + ], + header: [ + { + key: { + type: String, + }, + value: { + type: String, + }, + //required: true, + }, + ], + params: [ + { + key: { + type: String, + }, + value: { + type: String, + }, + //required: true, + }, + ], + }, + { timestamps: true } +); + +const Endpoint = mongoose.model("Endpoint", EndpointSchema); + +export default Endpoint; diff --git a/routes/collection.js b/routes/collection.js index 7e1eeb1..bc9ea64 100644 --- a/routes/collection.js +++ b/routes/collection.js @@ -12,12 +12,35 @@ import logApiCall from "../middleware/log.js"; const router = express.Router(); /* READ */ -router.get("/", verifyToken, logApiCall, getCollections); -router.get("/:id", verifyToken, logApiCall, getCollection); +router.get( + "/", + // verifyToken, + getCollections +); +router.get( + "/:id", + // verifyToken, + getCollection +); -router.post("/create", verifyToken, logApiCall, createCollection); -router.patch("/update/:id", verifyToken, logApiCall, updateCollection); +router.post( + "/create", + // verifyToken, + logApiCall, + createCollection +); +router.patch( + "/update/:id", + // verifyToken, + logApiCall, + updateCollection +); -router.delete("/:id/delete", verifyToken, logApiCall, deleteCollection); +router.delete( + "/:id/delete", + // verifyToken, + logApiCall, + deleteCollection +); export default router; diff --git a/routes/endpoint.js b/routes/endpoint.js new file mode 100644 index 0000000..4e40a73 --- /dev/null +++ b/routes/endpoint.js @@ -0,0 +1,48 @@ +import express from "express"; +import { + getEndpoint, + getEndpoints, + deleteEndpoint, + createEndpoint, + updateEndpoint, +} from "../controllers/endpoint.js"; +import { verifyToken } from "../middleware/auth.js"; +import logApiCall from "../middleware/log.js"; + +const router = express.Router(); + +/* READ */ +router.get( + "/", + // verifyToken, + + getEndpoints +); +router.get( + "/:id", + // verifyToken, + + getEndpoint +); + +router.post( + "/create", + // verifyToken, + logApiCall, + createEndpoint +); +router.patch( + "/update/:id", + // verifyToken, + logApiCall, + updateEndpoint +); + +router.delete( + "/:id/delete", + // verifyToken, + logApiCall, + deleteEndpoint +); + +export default router; diff --git a/routes/users.js b/routes/users.js index 10421ce..a346efd 100644 --- a/routes/users.js +++ b/routes/users.js @@ -25,22 +25,67 @@ const upload = multer({ }, }); /* READ */ -router.get("/", verifyToken, getUsers); -router.get("/:id", verifyToken, getUser); -router.get("/id/:id", verifyToken, getUserId); +router.get( + "/", + // verifyToken, + getUsers +); +router.get( + "/:id", + // verifyToken, + getUser +); +router.get( + "/id/:id", + // verifyToken, + getUserId +); router.post("/send-otp", sendOtpEmail); router.post("/confirm-otp", confirmOtp); -router.patch("/:id", verifyToken, upload.single("picture"), updateUser); -router.patch("/:id/sub", verifyToken, updateUserSub); -router.patch("/:id/password", verifyToken, updateUserPass); -router.patch("/:id/photo", verifyToken, updateUserPhoto); +router.patch( + "/:id", + // verifyToken, + upload.single("picture"), + updateUser +); +router.patch( + "/:id/sub", + // verifyToken, + updateUserSub +); +router.patch( + "/:id/password", + // verifyToken, + updateUserPass +); +router.patch( + "/:id/photo", + // verifyToken, + updateUserPhoto +); -router.patch("/:id/friends", verifyToken, updateUserFriends); -router.patch("/:id/friends/:friendId", verifyToken, updateUserFriendData); +router.patch( + "/:id/friends", + // verifyToken, + updateUserFriends +); +router.patch( + "/:id/friends/:friendId", + // verifyToken, + updateUserFriendData +); -router.delete("/:id/friends/:friendId", verifyToken, deleteUserFriend); -router.delete("/:id", verifyToken, deleteUser); +router.delete( + "/:id/friends/:friendId", + // verifyToken, + deleteUserFriend +); +router.delete( + "/:id", + // verifyToken, + deleteUser +); export default router;