UNPKG

@goparrot/franchise-mcp-server

Version:

MCP Server for Franchise API

108 lines (107 loc) 3.21 kB
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, }); }, };