diff --git a/app.js b/app.js index 3d1b747..0b10df5 100644 --- a/app.js +++ b/app.js @@ -27,6 +27,7 @@ import orderRoute from './resources/Orders/orderRoute.js' import DepartureRouter from "./resources/Departure/DepartureRoute.js"; import InformationRoute from "./resources/Informations/InformationRoute.js"; import ComplaintRoute from "./resources/Complaints/ComplaintRoute.js"; +import ContactRequest from "./resources/ContactRequests/ContactRequestRoute.js" import StateRouter from "./resources/setting/state/state_routes.js"; import CityRouter from "./resources/setting/city/city_routes.js"; @@ -41,6 +42,8 @@ app.use("/api", orderRoute); app.use("/api/departure/", DepartureRouter); //Information app.use("/api/information/", InformationRoute); +//Contact Requests +app.use("/api/contact/request/", ContactRequest); //Complaints app.use("/api/complaint/", ComplaintRoute); //state diff --git a/resources/ContactRequests/ContactRequestRoute.js b/resources/ContactRequests/ContactRequestRoute.js new file mode 100644 index 0000000..1b986f3 --- /dev/null +++ b/resources/ContactRequests/ContactRequestRoute.js @@ -0,0 +1,21 @@ + + + +import express from 'express' +import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; +import { AddNewContactRequest, FindAllContactRequest } from './ContactRequestsController.js'; + +const router = express.Router() + +router.route("/new").post(isAuthenticatedUser, authorizeRoles("admin"), AddNewContactRequest) +router.route("/getAll").get(isAuthenticatedUser, authorizeRoles("admin"), FindAllContactRequest) + + + + + + +// router.route("/product/getAll/").get(getAllProduct) + +export default router + diff --git a/resources/ContactRequests/ContactRequestsController.js b/resources/ContactRequests/ContactRequestsController.js new file mode 100644 index 0000000..d523ef0 --- /dev/null +++ b/resources/ContactRequests/ContactRequestsController.js @@ -0,0 +1,50 @@ + +import { ContactRequest } from './ContactRequestsModel.js' +export const AddNewContactRequest = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + + const contactRequest = await ContactRequest.create(req.body); + + res.status(201).json({ + success: true, + contactRequest, + message: 'ContactRequest Added', + }); + + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : 'Something went Wrong', + }); + } +} + +export const FindAllContactRequest = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + // console.log(req?.user) + + + const contactRequest = await ContactRequest.find().sort({ createdAt: -1 }); + if (contactRequest) { + return res.status(200).json({ + success: true, + contactRequest, + message: 'Fetched All ContactRequest', + }); + } + else { + return res.status(404).json({ + success: true, + + message: 'No ContactRequest till Now', + }); + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : 'Something went Wrong', + }); + } +} \ No newline at end of file diff --git a/resources/ContactRequests/ContactRequestsModel.js b/resources/ContactRequests/ContactRequestsModel.js new file mode 100644 index 0000000..ccad01d --- /dev/null +++ b/resources/ContactRequests/ContactRequestsModel.js @@ -0,0 +1,32 @@ + + + + +import mongoose from "mongoose"; + +const { Schema, model } = mongoose; + +const ContactRequestSchema = new mongoose.Schema( + { + + name: { + type: String, + maxLength: [25, "name cannot exceed 25 characters"], + required: [true, "Please Enter name "], + }, + EmailOrMobile: { + type: String, + + required: [true, "Please Enter title "], + }, + message: { + type: String, + maxLength: [500, "message cannot exceed 500 characters"], + required: [true, "Please Enter message"], + }, + + }, + { timestamps: true, versionKey: false } +); + +export const ContactRequest = mongoose.model("ContactRequest", ContactRequestSchema);