@goparrot/franchise-mcp-server
Version:
MCP Server for Franchise API
285 lines (284 loc) • 8.82 kB
JavaScript
import { dashboardBaseUrl, makeRequest } from '../../../common/index.js';
/**
* Method information for dashboard location menu concept endpoints
*/
export const LocationMenuConceptMethods = {
list: {
description: 'List menu concepts for a store location',
method: 'get',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts',
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: 'ListLocationMenuConceptsRequest',
isMultipart: false,
originalName: 'list',
isWrite: false,
permissions: ['store-menu-management:api:read'],
},
create: {
description: 'Create a new menu concept',
method: 'post',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
],
queryParams: [],
requestType: 'CreateLocationMenuConceptRequest',
isMultipart: false,
originalName: 'create',
isWrite: true,
permissions: ['store-menu-management:api:create'],
},
get: {
description: 'Get a specific menu concept by unique name',
method: 'get',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts/{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: 'Menu concept unique name',
required: true,
},
],
queryParams: [],
requestType: 'GetLocationMenuConceptRequest',
isMultipart: false,
originalName: 'get',
isWrite: false,
permissions: ['store-menu-management:api:read'],
},
update: {
description: 'Update a menu concept',
method: 'put',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts/{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: 'Menu concept unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateLocationMenuConceptRequest',
isMultipart: false,
originalName: 'update',
isWrite: true,
permissions: ['store-menu-management:api:update'],
},
patch: {
description: 'Partially update a menu concept',
method: 'patch',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts/{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: 'Menu concept unique name',
required: true,
},
],
queryParams: [],
requestType: 'PatchLocationMenuConceptRequest',
isMultipart: false,
originalName: 'patch',
isWrite: true,
permissions: ['store-menu-management:api:update'],
},
delete: {
description: 'Delete a menu concept',
method: 'delete',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts/{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: 'Menu concept unique name',
required: true,
},
],
queryParams: [],
requestType: 'DeleteLocationMenuConceptRequest',
isMultipart: false,
originalName: 'delete',
isWrite: true,
permissions: ['store-menu-management:api:delete'],
},
updateItemSets: {
description: 'Update item sets for a menu concept',
method: 'put',
path: '/storeItems/api/v2/merchants/{merchantId}/stores/{storeId}/menu-concepts/{uniqueName}/item-sets',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Menu concept unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateLocationMenuConceptItemSetsRequest',
isMultipart: false,
originalName: 'updateItemSets',
isWrite: true,
permissions: ['store-menu-management:api:update'],
},
};
/**
* Handlers for dashboard location menu concept endpoints
*/
export const LocationMenuConceptHandlers = {
list: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.list, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
create: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.create, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
get: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.get, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
update: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.update, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
patch: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.patch, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
delete: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.delete, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
updateItemSets: async (accessToken, args) => {
return makeRequest(LocationMenuConceptMethods.updateItemSets, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
};