@goparrot/franchise-mcp-server
Version:
MCP Server for Franchise API
108 lines (107 loc) • 3.21 kB
JavaScript
import { dashboardBaseUrl, makeRequest } from '../../../common/index.js';
/**
* Method information for dashboard menu sync item endpoints
*/
export const MenuSyncItemMethods = {
search: {
description: 'Search menu items by query and type',
method: 'get',
path: '/menuSync/api/v2/merchants/{merchantId}/stores/{storeId}/items/search',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
],
queryParams: [
{
name: 'query',
type: 'string',
description: 'Search query',
required: true,
},
{
name: 'type',
type: 'string',
description: 'Store item type',
required: true,
},
],
requestType: 'SearchItemsRequest',
isMultipart: false,
originalName: 'search',
isWrite: false,
permissions: ['store-menu-management:api:read'],
},
registerSyncJob: {
description: 'Register a sync job for a menu item',
method: 'post',
path: '/menuSync/api/v2/merchants/{merchantId}/stores/{storeId}/items/{type}/{uniqueName}/sync-jobs',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
{
name: 'type',
type: 'string',
description: 'Store item type',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Unique name of the item',
required: true,
},
],
queryParams: [
{
name: 'updateOnly',
type: 'boolean',
description: 'Whether to only update existing items',
required: false,
},
],
requestType: 'RegisterSyncJobRequest',
isMultipart: false,
originalName: 'registerSyncJob',
isWrite: true,
permissions: ['store-menu-management:api:create'],
},
};
/**
* Handlers for dashboard menu sync item endpoints
*/
export const MenuSyncItemHandlers = {
search: async (accessToken, args) => {
return makeRequest(MenuSyncItemMethods.search, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
registerSyncJob: async (accessToken, args) => {
return makeRequest(MenuSyncItemMethods.registerSyncJob, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
};