UNPKG

@goparrot/franchise-mcp-server

Version:

MCP Server for Franchise API

513 lines (512 loc) 16.2 kB
import { dashboardBaseUrl, makeRequest } from '../../../common/index.js'; /** * Method information for dashboard location item options endpoints */ export const LocationItemOptionsMethods = { list: { description: 'List item options for a store location', method: 'get', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, ], queryParams: [ { name: 'page', type: 'number', description: 'Page number', required: false, }, { name: 'limit', type: 'number', description: 'Items per page', required: false, }, { name: 'filter', type: 'object', description: 'Filter parameters', required: false, }, ], requestType: 'ListLocationItemOptionsRequest', isMultipart: false, originalName: 'list', isWrite: false, permissions: ['store-menu-management:api:read'], }, get: { description: 'Get a specific item option by unique name', method: 'get', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'GetLocationItemOptionRequest', isMultipart: false, originalName: 'get', isWrite: false, permissions: ['store-menu-management:api:read'], }, getParents: { description: 'Get parent entities for an item option', method: 'get', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/parents', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'GetLocationItemOptionParentsRequest', isMultipart: false, originalName: 'getParents', isWrite: false, permissions: ['store-menu-management:api:read'], }, getChildren: { description: 'Get child entities for an item option', method: 'get', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/children', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'GetLocationItemOptionChildrenRequest', isMultipart: false, originalName: 'getChildren', isWrite: false, permissions: ['store-menu-management:api:read'], }, create: { description: 'Create a new item option', method: 'post', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, ], queryParams: [], requestType: 'CreateLocationItemOptionRequest', isMultipart: false, originalName: 'create', isWrite: true, permissions: ['store-menu-management:api:create'], }, update: { description: 'Update an item option', method: 'put', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'UpdateLocationItemOptionRequest', isMultipart: false, originalName: 'update', isWrite: true, permissions: ['store-menu-management:api:update'], }, patch: { description: 'Partially update an item option', method: 'patch', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'PatchLocationItemOptionRequest', isMultipart: false, originalName: 'patch', isWrite: true, permissions: ['store-menu-management:api:update'], }, delete: { description: 'Delete an item option', method: 'delete', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'DeleteLocationItemOptionRequest', isMultipart: false, originalName: 'delete', isWrite: true, permissions: ['store-menu-management:api:delete'], }, clone: { description: 'Clone an item option', method: 'post', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/clone', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'CloneLocationItemOptionRequest', isMultipart: false, originalName: 'clone', isWrite: true, permissions: ['store-menu-management:api:create'], }, updateSelections: { description: 'Update item base selections for an option', method: 'patch', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/item-bases', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'UpdateLocationItemOptionSelectionsRequest', isMultipart: false, originalName: 'updateSelections', isWrite: true, permissions: ['store-menu-management:api:update'], }, updateItemBases: { description: 'Update item bases for an option', method: 'post', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/item-bases', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'UpdateLocationItemOptionBasesRequest', isMultipart: false, originalName: 'updateItemBases', isWrite: true, permissions: ['store-menu-management:api:update'], }, updateStoreItemProperties: { description: 'Update store item properties for an option', method: 'patch', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/store-items', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'UpdateLocationItemOptionStoreItemPropertiesRequest', isMultipart: false, originalName: 'updateStoreItemProperties', isWrite: true, permissions: ['store-menu-management:api:update'], }, updateSelectionsShowOrder: { description: 'Update show order for selections', method: 'patch', path: '/storeItems/api/v2/merchant/{merchantId}/store/{storeId}/item-options/{uniqueName}/item-bases/show-order', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, { name: 'storeId', type: 'string', description: 'Store ID', required: true, }, { name: 'uniqueName', type: 'string', description: 'Option unique name', required: true, }, ], queryParams: [], requestType: 'UpdateLocationItemOptionSelectionsShowOrderRequest', isMultipart: false, originalName: 'updateSelectionsShowOrder', isWrite: true, permissions: ['store-menu-management:api:update'], }, }; /** * Handlers for dashboard location item options endpoints */ export const LocationItemOptionsHandlers = { list: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.list, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, get: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.get, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, getParents: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.getParents, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, getChildren: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.getChildren, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, create: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.create, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, update: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.update, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, patch: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.patch, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, delete: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.delete, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, clone: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.clone, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, updateSelections: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.updateSelections, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, updateItemBases: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.updateItemBases, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, updateStoreItemProperties: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.updateStoreItemProperties, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, updateSelectionsShowOrder: async (accessToken, args) => { return makeRequest(LocationItemOptionsMethods.updateSelectionsShowOrder, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, };