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',
|
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();
|
return (await Agent.create(initialAgentData)).toObject();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,14 @@ export const agentToolResourcesSchema = z
|
||||||
})
|
})
|
||||||
.optional();
|
.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 */
|
/** Base agent schema with all common fields */
|
||||||
export const agentBaseSchema = z.object({
|
export const agentBaseSchema = z.object({
|
||||||
name: z.string().nullable().optional(),
|
name: z.string().nullable().optional(),
|
||||||
|
|
@ -42,6 +50,8 @@ export const agentBaseSchema = z.object({
|
||||||
recursion_limit: z.number().optional(),
|
recursion_limit: z.number().optional(),
|
||||||
conversation_starters: z.array(z.string()).optional(),
|
conversation_starters: z.array(z.string()).optional(),
|
||||||
tool_resources: agentToolResourcesSchema,
|
tool_resources: agentToolResourcesSchema,
|
||||||
|
support_contact: agentSupportContactSchema,
|
||||||
|
category: z.string().optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
/** Create schema extends base with required fields for creation */
|
/** Create schema extends base with required fields for creation */
|
||||||
|
|
|
||||||
|
|
@ -99,21 +99,11 @@ const agentSchema = new Schema<IAgent>(
|
||||||
default: 'general',
|
default: 'general',
|
||||||
},
|
},
|
||||||
support_contact: {
|
support_contact: {
|
||||||
type: {
|
type: Schema.Types.Mixed,
|
||||||
name: {
|
default: {
|
||||||
type: String,
|
name: '',
|
||||||
trim: true,
|
email: '',
|
||||||
},
|
|
||||||
email: {
|
|
||||||
type: String,
|
|
||||||
match: [
|
|
||||||
/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
|
|
||||||
'Please enter a valid email address.',
|
|
||||||
],
|
|
||||||
trim: true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
default: {},
|
|
||||||
},
|
},
|
||||||
is_promoted: {
|
is_promoted: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue