Skip to content

Instantly share code, notes, and snippets.

@richardsaci
Created October 25, 2022 16:55
Show Gist options
  • Select an option

  • Save richardsaci/df40b9811738f178eafdcd5b2b19eecc to your computer and use it in GitHub Desktop.

Select an option

Save richardsaci/df40b9811738f178eafdcd5b2b19eecc to your computer and use it in GitHub Desktop.
vendorRoute.js
```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