update lang

This commit is contained in:
Your Name committed 2026-06-14 18:58:45 -04:00
1 parent 46f00c76a4
commit f5b60ff63e
30 files changed
+546 -652

No files matched your search

+55
View File
@@ -69,6 +69,53 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
required: ["env"]
}
},
{
name: "get_menu",
description: "Fetch a specific menu and its items (including translations)",
inputSchema: {
type: "object",
properties: {
name: { type: "string", description: "Name of the menu (e.g. main, footer-explore)" }
},
required: ["name"]
}
},
{
name: "upsert_menu",
description: "Update or create a complete menu by replacing its items. Uses proper diff & sync for translations.",
inputSchema: {
type: "object",
properties: {
name: { type: "string", description: "Name of the menu (e.g. main, footer-explore)" },
items: {
type: "array",
description: "Array of menu items",
items: {
type: "object",
properties: {
id: { type: "number", description: "ID of existing item (optional)" },
label: { type: "string", description: "Label of the menu item" },
url: { type: "string", description: "URL of the menu item" },
order: { type: "number", description: "Order sequence" },
translations: {
type: "array",
description: "Optional array of translations",
items: {
type: "object",
properties: {
langCode: { type: "string" },
label: { type: "string" }
}
}
}
},
required: ["label", "url", "order"]
}
}
},
required: ["name", "items"]
}
},
{
name: "ping_backend",
description: "Ping the backend to verify connection and authentication",
@@ -466,6 +513,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
const res = await api.get("/products?limit=1");
return { content: [{ type: "text", text: `Connection successful!` }] };
}
case "get_menu": {
const res = await api.get(`/menus/${params.name}`);
return { content: [{ type: "text", text: JSON.stringify(res.data, null, 2) }] };
}
case "upsert_menu": {
const res = await api.put(`/menus/${params.name}`, { items: params.items });
return { content: [{ type: "text", text: JSON.stringify(res.data, null, 2) }] };
}
case "search_products": {
const search = params.search ? `&search=${encodeURIComponent(params.search)}` : "";
const limit = params.limit ? `&limit=${params.limit}` : "&limit=10";