mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 19:30:15 +01:00
fix: make support_contact field a nested object rather than a sub-document
This commit is contained in:
parent
39f4e725e5
commit
b750f52727
3 changed files with 23 additions and 14 deletions
|
|
@ -38,6 +38,15 @@ const createAgent = async (agentData) => {
|
|||
],
|
||||
category: agentData.category || 'general',
|
||||
};
|
||||
|
||||
// Handle empty support_contact object
|
||||
if (agentData.support_contact && Object.keys(agentData.support_contact).length === 0) {
|
||||
initialAgentData.support_contact = {
|
||||
name: '',
|
||||
email: '',
|
||||
};
|
||||
}
|
||||
|
||||
return (await Agent.create(initialAgentData)).toObject();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,14 @@ export const agentToolResourcesSchema = z
|
|||
})
|
||||
.optional();
|
||||
|
||||
/** Support contact schema for agent */
|
||||
export const agentSupportContactSchema = z
|
||||
.object({
|
||||
name: z.string().optional(),
|
||||
email: z.string().email().optional(),
|
||||
})
|
||||
.optional();
|
||||
|
||||
/** Base agent schema with all common fields */
|
||||
export const agentBaseSchema = z.object({
|
||||
name: z.string().nullable().optional(),
|
||||
|
|
@ -42,6 +50,8 @@ export const agentBaseSchema = z.object({
|
|||
recursion_limit: z.number().optional(),
|
||||
conversation_starters: z.array(z.string()).optional(),
|
||||
tool_resources: agentToolResourcesSchema,
|
||||
support_contact: agentSupportContactSchema,
|
||||
category: z.string().optional(),
|
||||
});
|
||||
|
||||
/** Create schema extends base with required fields for creation */
|
||||
|
|
|
|||
|
|
@ -99,21 +99,11 @@ const agentSchema = new Schema<IAgent>(
|
|||
default: 'general',
|
||||
},
|
||||
support_contact: {
|
||||
type: {
|
||||
name: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
match: [
|
||||
/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
|
||||
'Please enter a valid email address.',
|
||||
],
|
||||
trim: true,
|
||||
},
|
||||
type: Schema.Types.Mixed,
|
||||
default: {
|
||||
name: '',
|
||||
email: '',
|
||||
},
|
||||
default: {},
|
||||
},
|
||||
is_promoted: {
|
||||
type: Boolean,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue