diff --git a/models/tutorial.js b/models/tutorial.js index b32ed42..5ef535f 100644 --- a/models/tutorial.js +++ b/models/tutorial.js @@ -13,3 +13,39 @@ const tutorialSchema = { // eslint-disable-next-line no-unused-vars const Tutorial = connector.model("Tutorial", tutorialSchema); + +/// CRUD Operations /// + +// Add a new tutorial to the database +async function create(tutorialData) { + const tutorial = new Tutorial(tutorialData); + const tutorialDoc = await tutorial.save(); + return tutorialDoc; +} + +// Retrieve tutorials based on a given filter and limit +async function read(filter, limit = 1) { + const tutorialDoc = await Tutorial.find(filter).limit(limit); + return tutorialDoc; +} + +// Update tutorials based on a given filter and update data +async function update(filter, updateObject, options = { multi: true }) { + const updateResult = await Tutorial.updateMany(filter, { $set: updateObject }, options); + return updateResult.acknowledged; +} + +// Delete tutorials based on a given filter +async function remove(filter) { + const deleteResult = await Tutorial.deleteMany(filter).exec(); + return deleteResult.acknowledged; +} + +// Export the CRUD functions +export default { + create, + read, + update, + remove, +}; +