mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
feat: combine customgpt to user
This commit is contained in:
parent
b0284b6974
commit
aabb19656e
2 changed files with 20 additions and 16 deletions
|
|
@ -12,16 +12,20 @@ const customGptSchema = mongoose.Schema({
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
user: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
}, { timestamps: true });
|
}, { timestamps: true });
|
||||||
|
|
||||||
const CustomGpt = mongoose.models.CustomGpt || mongoose.model('CustomGpt', customGptSchema);
|
const CustomGpt = mongoose.models.CustomGpt || mongoose.model('CustomGpt', customGptSchema);
|
||||||
|
|
||||||
const createCustomGpt = async ({ chatGptLabel, promptPrefix, value }) => {
|
const createCustomGpt = async ({ chatGptLabel, promptPrefix, value, user }) => {
|
||||||
try {
|
try {
|
||||||
await CustomGpt.create({
|
await CustomGpt.create({
|
||||||
chatGptLabel,
|
chatGptLabel,
|
||||||
promptPrefix,
|
promptPrefix,
|
||||||
value
|
value,
|
||||||
|
user
|
||||||
});
|
});
|
||||||
return { chatGptLabel, promptPrefix, value };
|
return { chatGptLabel, promptPrefix, value };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -31,22 +35,22 @@ const createCustomGpt = async ({ chatGptLabel, promptPrefix, value }) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getCustomGpts: async (filter) => {
|
getCustomGpts: async (user, filter) => {
|
||||||
try {
|
try {
|
||||||
return await CustomGpt.find(filter).exec();
|
return await CustomGpt.find({ ...filter, user: user }).exec();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return { customGpt: 'Error getting customGpts' };
|
return { customGpt: 'Error getting customGpts' };
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateCustomGpt: async ({ value, ...update }) => {
|
updateCustomGpt: async (user, { value, ...update }) => {
|
||||||
try {
|
try {
|
||||||
const customGpt = await CustomGpt.findOne({ value }).exec();
|
const customGpt = await CustomGpt.findOne({ value, user: user }).exec();
|
||||||
|
|
||||||
if (!customGpt) {
|
if (!customGpt) {
|
||||||
return await createCustomGpt({ value, ...update });
|
return await createCustomGpt({ value, ...update, user: user });
|
||||||
} else {
|
} else {
|
||||||
return await CustomGpt.findOneAndUpdate({ value }, update, {
|
return await CustomGpt.findOneAndUpdate({ value, user: user }, update, {
|
||||||
new: true,
|
new: true,
|
||||||
upsert: true
|
upsert: true
|
||||||
}).exec();
|
}).exec();
|
||||||
|
|
@ -56,9 +60,9 @@ module.exports = {
|
||||||
return { message: 'Error updating customGpt' };
|
return { message: 'Error updating customGpt' };
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateByLabel: async ({ prevLabel, ...update }) => {
|
updateByLabel: async (user, { prevLabel, ...update }) => {
|
||||||
try {
|
try {
|
||||||
return await CustomGpt.findOneAndUpdate({ chatGptLabel: prevLabel }, update, {
|
return await CustomGpt.findOneAndUpdate({ chatGptLabel: prevLabel, user: user }, update, {
|
||||||
new: true,
|
new: true,
|
||||||
upsert: true
|
upsert: true
|
||||||
}).exec();
|
}).exec();
|
||||||
|
|
@ -67,9 +71,9 @@ module.exports = {
|
||||||
return { message: 'Error updating customGpt' };
|
return { message: 'Error updating customGpt' };
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deleteCustomGpts: async (filter) => {
|
deleteCustomGpts: async (user, filter) => {
|
||||||
try {
|
try {
|
||||||
return await CustomGpt.deleteMany(filter).exec();
|
return await CustomGpt.deleteMany({ ...filter, user: user }).exec();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return { customGpt: 'Error deleting customGpts' };
|
return { customGpt: 'Error deleting customGpts' };
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ const {
|
||||||
} = require('../../models');
|
} = require('../../models');
|
||||||
|
|
||||||
router.get('/', async (req, res) => {
|
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 = model.toObject();
|
||||||
model._id = model._id.toString();
|
model._id = model._id.toString();
|
||||||
return model;
|
return model;
|
||||||
|
|
@ -20,8 +20,8 @@ router.post('/delete', async (req, res) => {
|
||||||
const { arg } = req.body;
|
const { arg } = req.body;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await deleteCustomGpts(arg);
|
await deleteCustomGpts(req?.session?.user?.username, arg);
|
||||||
const models = (await getCustomGpts()).map((model) => {
|
const models = (await getCustomGpts(req?.session?.user?.username)).map((model) => {
|
||||||
model = model.toObject();
|
model = model.toObject();
|
||||||
model._id = model._id.toString();
|
model._id = model._id.toString();
|
||||||
return model;
|
return model;
|
||||||
|
|
@ -56,7 +56,7 @@ router.post('/', async (req, res) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const dbResponse = await setter(update);
|
const dbResponse = await setter(req?.session?.user?.username, update);
|
||||||
res.status(201).send(dbResponse);
|
res.status(201).send(dbResponse);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue