Created
October 25, 2022 16:55
-
-
Save richardsaci/df40b9811738f178eafdcd5b2b19eecc to your computer and use it in GitHub Desktop.
vendorRoute.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ```js | |
| const express = require("express"); | |
| const router = express.Router(); | |
| const Vendor = require("../models/VendorModel"); | |
| router.get("/vendorAdd", (req, res) => { | |
| res.render("pages/vendorAdd", { | |
| title: "Add Vendor", | |
| }); | |
| }); | |
| router.post("/vendorAdd", (req, res) => { | |
| const vendor = new Vendor({ | |
| vendorName: req.body.vendorName, | |
| vendorContact: req.body.vendorContact, | |
| vendorAddressLine1: req.body.vendorAddressLine1, | |
| vendorAddressLine2: req.body.vendorAddressLine2, | |
| vendorCity: req.body.vendorCity, | |
| vendorState: req.body.vendorState, | |
| vendorZip: req.body.vendorZip, | |
| vendorPhone: req.body.vendorPhone, | |
| vendorEmail: req.body.vendorEmail, | |
| vendorFax: req.body.vendorFax, | |
| isActive: req.body.isActive, | |
| vendorNote: req.body.vendorNote, | |
| }); | |
| console.log(vendor); | |
| vendor.save((err, result) => { | |
| if (err) { | |
| res.json({ | |
| message: err.message, | |
| type: "danger", | |
| result: result, | |
| }); | |
| } else { | |
| req.session.message = { | |
| type: "success", | |
| message: "Vendor Added Successfully!", | |
| result: result, | |
| }; | |
| res.redirect("/vendors"); | |
| } | |
| }); | |
| }); | |
| router.get("/vendors", (req, res) => { | |
| Vendor.aggregate([ | |
| { | |
| $match: {}, | |
| }, | |
| { | |
| $sort: { | |
| vendorName: 1, | |
| }, | |
| }, | |
| ]).exec((err, vendors) => { | |
| if (err) { | |
| res.json({ | |
| message: err.message, | |
| }); | |
| } else { | |
| res.render("pages/vendorsTable", { | |
| title: "All Vendors", | |
| layout: "layouts/table_layout.ejs", | |
| vendors: vendors, | |
| }); | |
| } | |
| }); | |
| }); | |
| router.get("/vendorEdit/:id", (req, res) => { | |
| let id = req.params.id; | |
| Vendor.findById(id, (err, vendor) => { | |
| if (err) { | |
| res.redirect("/"); | |
| } else { | |
| if (vendor == null) { | |
| res.redirect("/"); | |
| } else { | |
| res.render("pages/vendorEdit", { | |
| title: "Edit Vendor", | |
| vendor: vendor, | |
| }); | |
| } | |
| } | |
| }); | |
| }); | |
| router.post("/vendorUpdate/:id", (req, res) => { | |
| let id = req.params.id; | |
| Vendor.findByIdAndUpdate( | |
| id, | |
| { | |
| vendorName: req.body.vendorName, | |
| vendorContact: req.body.vendorContact, | |
| vendorAddressLine1: req.body.vendorAddressLine1, | |
| vendorAddressLine2: req.body.vendorAddressLine2, | |
| vendorCity: req.body.vendorCity, | |
| vendorState: req.body.vendorState, | |
| vendorZip: req.body.vendorZip, | |
| vendorPhone: req.body.vendorPhone, | |
| vendorEmail: req.body.vendorEmail, | |
| vendorFax: req.body.vendorFax, | |
| isActive: req.body.isActive, | |
| vendorNote: req.body.vendorNote, | |
| }, | |
| (error, result) => { | |
| if (error) { | |
| res.json({ | |
| message: error.message, | |
| type: "danger", | |
| }); | |
| console.log("Error Happened"); | |
| } else { | |
| req.session.message = { | |
| type: "success", | |
| message: "Vendor Updated Successfully!", | |
| }; | |
| } | |
| res.redirect("/vendors"); | |
| } | |
| ); | |
| }); | |
| router.get("/findVendor", (req, res) => { | |
| console.log(`request.query.term is: ${req.query.term}`); | |
| let t = `${req.query.term}`; | |
| Vendor.aggregate([ | |
| { | |
| $search: { autocomplete: { path: "vendorName", query: t } }, | |
| }, | |
| ]).exec((err, vendors) => { | |
| if (err) { | |
| res.json({ message: err.message }); | |
| } else { | |
| console.log(vendors); | |
| res.render("pages/purchaseOrderTest", { | |
| title: "Purchase Order", | |
| layout: "layouts/table_layout.ejs", | |
| vendors: vendors, | |
| }); | |
| } | |
| }); | |
| }); | |
| // Loads the purchaseOrderTestTwo.ejs Page | |
| router.get("/findVendorX", (req, res) => { | |
| let t = `${req.query.term}`; | |
| Vendor.aggregate([ | |
| { | |
| $search: { autocomplete: { path: "vendorName", query: t } }, | |
| }, | |
| ]).exec((err, vendors) => { | |
| if (err) { | |
| res.json({ message: err.message }); | |
| } else { | |
| res.render("pages/purchaseOrderTestTwo", { | |
| title: "PurchaseOrderTestTwo Called By /findVendorX", | |
| vendors: vendors, | |
| }); | |
| } | |
| }); | |
| }); | |
| // Fetches the Vendors that match my query | |
| router.get("/findVendorY", (req, res) => { | |
| let t = `${req.query.term}`; | |
| Vendor.aggregate([ | |
| { | |
| $search: { autocomplete: { path: "vendorName", query: t } }, | |
| }, | |
| ]).exec((err, vendors) => { | |
| { | |
| res.json({vendors: vendors}); | |
| } | |
| }); | |
| }); | |
| module.exports = router; | |
| ``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment