From 11cbf26b0381194ce43ebbe9157ae72e00638412 Mon Sep 17 00:00:00 2001 From: Kunalpal216 Date: Wed, 28 Jun 2023 17:26:17 +0530 Subject: [PATCH] added food outlet resource --- api/javascript/admin_panel/admin-config.js | 3 ++- .../resources/foodOutlet.resource.js | 22 +++++++++++++++++++ api/javascript/admin_panel/roles.js | 1 + api/javascript/models/foodOutlets.js | 15 +++++++------ api/javascript/models/messMenuModel.js | 3 ++- 5 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 api/javascript/admin_panel/resources/foodOutlet.resource.js diff --git a/api/javascript/admin_panel/admin-config.js b/api/javascript/admin_panel/admin-config.js index 9110a44..02657f6 100644 --- a/api/javascript/admin_panel/admin-config.js +++ b/api/javascript/admin_panel/admin-config.js @@ -17,6 +17,7 @@ const lostItemResource = require("./resources/lostItem.resource"); const foundItemResource = require("./resources/foundItem.resource"); const adminResource = require("./resources/admin.resource"); const contactsResource = require("./resources/contacts.resource"); +const foodOutletResource = require("./resources/foodOutlet.resource"); AdminJs.registerAdapter(AdminJsMongoose); @@ -31,7 +32,7 @@ var sessiontStore = new MongoDBStore( }); const adminjs = new AdminJs({ - resources: [messMenuResouce, adminResource, userResource, timingResource, contactsResource, cabSharingResource, lostItemResource, foundItemResource], + resources: [messMenuResouce, foodOutletResource, adminResource, userResource, timingResource, contactsResource, cabSharingResource, lostItemResource, foundItemResource], assets: { styles: styleAssets }, diff --git a/api/javascript/admin_panel/resources/foodOutlet.resource.js b/api/javascript/admin_panel/resources/foodOutlet.resource.js new file mode 100644 index 0000000..17a9b7b --- /dev/null +++ b/api/javascript/admin_panel/resources/foodOutlet.resource.js @@ -0,0 +1,22 @@ +const verifyRoles = require("../utils"); +const roles = require("../roles"); +const foodOutlets = require("../../models/foodOutlets"); + +let allowedRoles = [roles.SUPERADMIN, roles.FOODOUTLET]; + +module.exports = { + resource: foodOutlets, + options: { + listProperties: ["outletName","caption","closingTime","phoneNumber","location","latitude","longitude","tags","menu","imageURL"], + filterProperties: ["outletName","caption","closingTime","phoneNumber","location","latitude","longitude","tags","menu","imageURL"], + editProperties: ["outletName","caption","closingTime","phoneNumber","location","latitude","longitude","tags","menu","imageURL"], + showProperties: ["outletName","caption","closingTime","phoneNumber","location","latitude","longitude","tags","menu","imageURL"], + actions: { + list: { isAccessible: ({ currentAdmin }) => verifyRoles(currentAdmin, allowedRoles) }, + new: { isAccessible: ({ currentAdmin }) => verifyRoles(currentAdmin, allowedRoles) }, + filter: { isAccessible: ({ currentAdmin }) => verifyRoles(currentAdmin, allowedRoles) }, + edit: { isAccessible: ({ currentAdmin }) => verifyRoles(currentAdmin, allowedRoles) }, + delete: { isAccessible: ({ currentAdmin }) => verifyRoles(currentAdmin, allowedRoles) } + } + } +}; diff --git a/api/javascript/admin_panel/roles.js b/api/javascript/admin_panel/roles.js index 344df50..efcf585 100644 --- a/api/javascript/admin_panel/roles.js +++ b/api/javascript/admin_panel/roles.js @@ -1,6 +1,7 @@ module.exports = { SPORTS: "sports", MESS: "mess", + FOODOUTLET: "food outlet", FERRYTIMING: "ferry", BUSSTOP: "bus", CABSHARING: "cab sharing", diff --git a/api/javascript/models/foodOutlets.js b/api/javascript/models/foodOutlets.js index ef7cff0..fdb1a7d 100644 --- a/api/javascript/models/foodOutlets.js +++ b/api/javascript/models/foodOutlets.js @@ -3,7 +3,7 @@ const foodItems = require("./foodItems"); var Scraper = require("images-scraper"); const foodItemSchema = new mongoose.Schema({ - name: { + itemName: { type: String, required: true }, @@ -54,8 +54,7 @@ const foodOutletsSchema = new mongoose.Schema({ }], menu: [foodItemSchema], imageURL: { - type: String, - required: true + type: String } }); @@ -65,13 +64,15 @@ foodOutletsSchema.pre('save',async function(){ console.log(this.menu[i]); console.log(this.menu[i]["imageURL"]); console.log("here"); - if(this.menu[i]["imageURL"].length===0){ + if(!this.menu[i]["imageURL"] || this.menu[i]["imageURL"].length==0){ + console.log("INSIDE HERE"); const google = new Scraper({ puppeteer: { headless: true, } }); - const imageResults = await google.scrape(this.menu[i]["name"],1); + const imageResults = await google.scrape(this.menu[i]["itemName"],1); + console.log(imageResults); this.menu[i]["imageURL"] = imageResults[0]["url"]; console.log(imageResults); } @@ -83,13 +84,13 @@ foodOutletsSchema.pre('findOneAndUpdate',async function(){ console.log(this["_update"]['$set']['menu']); console.log(this["_update"]['$set']['menu'][i]["imageURL"]); console.log("here"); - if(this["_update"]['$set']['menu'][i]["imageURL"].length===0){ + if(!this["_update"]['$set']['menu'][i]["imageURL"].length===0 || this["_update"]['$set']['menu'][i]["imageURL"].length===0){ const google = new Scraper({ puppeteer: { headless: true, } }); - const imageResults = await google.scrape(this["_update"]['$set']['menu'][i]["name"],1); + const imageResults = await google.scrape(this["_update"]['$set']['menu'][i]["itemName"],1); this["_update"]['$set']['menu'][i]["imageURL"] = imageResults[0]["url"]; console.log(imageResults); } diff --git a/api/javascript/models/messMenuModel.js b/api/javascript/models/messMenuModel.js index 32fd234..304a1bc 100644 --- a/api/javascript/models/messMenuModel.js +++ b/api/javascript/models/messMenuModel.js @@ -4,7 +4,8 @@ const { allIITGHostels } = require("../helpers/constants"); const mealSchema = new mongoose.Schema({ mealDescription: { type: String, - required: true + required: true, + maxLength: 60 }, timing: { type: String,