diff --git a/Backend/src/__pycache__/db.cpython-312.pyc b/Backend/src/__pycache__/db.cpython-312.pyc new file mode 100644 index 0000000..1aa7469 Binary files /dev/null and b/Backend/src/__pycache__/db.cpython-312.pyc differ diff --git a/server/storage/collections/recipes.js b/server/storage/collections/recipes.js new file mode 100644 index 0000000..e121e33 --- /dev/null +++ b/server/storage/collections/recipes.js @@ -0,0 +1,77 @@ +import mongoose from "mongoose"; + +import { v4 as uuidv4 } from 'uuid'; + + +const reqString = { + type: String, + required: true +} + +const recipesSchema = new mongoose.Schema({ + id: reqString, + userID: String, + ingredients: Array, + productName: String, + nutritionFacts: Object, + rating: Number, + cuisine: String, + expense: Number, + mealType: Object + + + + +}, { timestamps: true }); + +export default class Recipes { + constructor() { + this.model = mongoose.model('recipes', recipesSchema); + this.upsert = { upsert: true }; + } + + + async create(recipe) { + + let Id = uuidv4(); + + await this.model.findOneAndUpdate({ id: Id }, { + id: Id, + userID: recipe.userID, + ingredients: recipe.ingredients, + productName: recipe.productName, + nutritionFacts: recipe.nutritionFacts, + rating: recipe.rating, + cuisine: recipe.cuisine, + expense: recipe.expense, + mealType: recipe.mealType + + + + + }, this.upsert); + return await this.get(user.id); + } + + async get(Id) { + return await this.model.findOne({ id: Id }); + } + + async getAll(query) { + let data = await this.model.find(query); + return data + } + + async update(Id, data) { + if(!(await this.get(Id))) return null; + await this.model.findOneAndUpdate({ id: Id }, data, this.upsert); + return await this.get(Id); + } + + async delete(Id) { + let result = await this.get(Id); + if(!result) return false; + await this.model.deleteOne({ id: Id }) + return true; + } +} \ No newline at end of file diff --git a/server/storage/collections/users.js b/server/storage/collections/users.js index 5593f57..7689b76 100644 --- a/server/storage/collections/users.js +++ b/server/storage/collections/users.js @@ -1,4 +1,5 @@ import mongoose from "mongoose"; +import { v4 as uuidv4 } from 'uuid'; const reqString = { type: String, @@ -6,7 +7,14 @@ const reqString = { } const UserSchema = new mongoose.Schema({ - id: reqString, + id: reqString, + recipes: Array, + dietaryRestrictions: Array, + firstName: String, + lastName: String, + email: String + + }, { timestamps: true }); @@ -16,23 +24,20 @@ export default class Users { this.upsert = { upsert: true }; } - makeId(length) { - var result = []; - var characters = 'abcdefghijklmnopqrstuvwxyz012345678901234567890123456789'; - var charactersLength = characters.length; - for ( var i = 0; i < length; i++ ) { - result.push(characters.charAt(Math.floor(Math.random() * charactersLength))); - } - return result.join(''); - } async create(user) { if(await this.model.findOne({ username: user.username }) || await this.model.findOne({ email: user.email })) return null; - let Id = this.makeId(5); + let Id = uuidv4(); + await this.model.findOneAndUpdate({ id: Id }, { id: Id, + recipes: user.recipes, + dietaryRestrictions: user.dietaryRestrictions, + firstName: user.firstName, + lastName: user.lastName, + email: user.Email }, this.upsert); return await this.get(user.id); }