diff --git a/api/models/CustomGpt.js b/api/models/CustomGpt.js index 1f02bdc4db..99379c944d 100644 --- a/api/models/CustomGpt.js +++ b/api/models/CustomGpt.js @@ -12,16 +12,20 @@ const customGptSchema = mongoose.Schema({ type: String, required: true }, + user: { + type: String + }, }, { timestamps: true }); const CustomGpt = mongoose.models.CustomGpt || mongoose.model('CustomGpt', customGptSchema); -const createCustomGpt = async ({ chatGptLabel, promptPrefix, value }) => { +const createCustomGpt = async ({ chatGptLabel, promptPrefix, value, user }) => { try { await CustomGpt.create({ chatGptLabel, promptPrefix, - value + value, + user }); return { chatGptLabel, promptPrefix, value }; } catch (error) { @@ -31,22 +35,22 @@ const createCustomGpt = async ({ chatGptLabel, promptPrefix, value }) => { }; module.exports = { - getCustomGpts: async (filter) => { + getCustomGpts: async (user, filter) => { try { - return await CustomGpt.find(filter).exec(); + return await CustomGpt.find({ ...filter, user: user }).exec(); } catch (error) { console.error(error); return { customGpt: 'Error getting customGpts' }; } }, - updateCustomGpt: async ({ value, ...update }) => { + updateCustomGpt: async (user, { value, ...update }) => { try { - const customGpt = await CustomGpt.findOne({ value }).exec(); + const customGpt = await CustomGpt.findOne({ value, user: user }).exec(); if (!customGpt) { - return await createCustomGpt({ value, ...update }); + return await createCustomGpt({ value, ...update, user: user }); } else { - return await CustomGpt.findOneAndUpdate({ value }, update, { + return await CustomGpt.findOneAndUpdate({ value, user: user }, update, { new: true, upsert: true }).exec(); @@ -56,9 +60,9 @@ module.exports = { return { message: 'Error updating customGpt' }; } }, - updateByLabel: async ({ prevLabel, ...update }) => { + updateByLabel: async (user, { prevLabel, ...update }) => { try { - return await CustomGpt.findOneAndUpdate({ chatGptLabel: prevLabel }, update, { + return await CustomGpt.findOneAndUpdate({ chatGptLabel: prevLabel, user: user }, update, { new: true, upsert: true }).exec(); @@ -67,9 +71,9 @@ module.exports = { return { message: 'Error updating customGpt' }; } }, - deleteCustomGpts: async (filter) => { + deleteCustomGpts: async (user, filter) => { try { - return await CustomGpt.deleteMany(filter).exec(); + return await CustomGpt.deleteMany({ ...filter, user: user }).exec(); } catch (error) { console.error(error); return { customGpt: 'Error deleting customGpts' }; diff --git a/api/server/routes/customGpts.js b/api/server/routes/customGpts.js index a58143a8b6..d430b39adb 100644 --- a/api/server/routes/customGpts.js +++ b/api/server/routes/customGpts.js @@ -8,7 +8,7 @@ const { } = require('../../models'); router.get('/', async (req, res) => { - const models = (await getCustomGpts()).map((model) => { + const models = (await getCustomGpts(req?.session?.user?.username)).map((model) => { model = model.toObject(); model._id = model._id.toString(); return model; @@ -20,8 +20,8 @@ router.post('/delete', async (req, res) => { const { arg } = req.body; try { - await deleteCustomGpts(arg); - const models = (await getCustomGpts()).map((model) => { + await deleteCustomGpts(req?.session?.user?.username, arg); + const models = (await getCustomGpts(req?.session?.user?.username)).map((model) => { model = model.toObject(); model._id = model._id.toString(); return model; @@ -56,7 +56,7 @@ router.post('/', async (req, res) => { } try { - const dbResponse = await setter(update); + const dbResponse = await setter(req?.session?.user?.username, update); res.status(201).send(dbResponse); } catch (error) { console.error(error);