@goparrot/franchise-mcp-server
Version:
MCP Server for Franchise API
499 lines (498 loc) • 16 kB
JavaScript
import { dashboardBaseUrl, makeRequest } from '../../../common/index.js';
/**
* Method information for dashboard merchant item options endpoints
*/
export const MerchantItemOptionsMethods = {
list: {
description: 'List item options for a merchant',
method: 'get',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant 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: 'ListMerchantItemOptionsRequest',
isMultipart: false,
originalName: 'list',
isWrite: false,
permissions: ['merchant-menu-management:api:read'],
},
get: {
description: 'Get a specific item option by unique name',
method: 'get',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'GetMerchantItemOptionRequest',
isMultipart: false,
originalName: 'get',
isWrite: false,
permissions: ['merchant-menu-management:api:read'],
},
getVersions: {
description: 'Get versions of an item option',
method: 'get',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/versions',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'GetMerchantItemOptionVersionsRequest',
isMultipart: false,
originalName: 'getVersions',
isWrite: false,
permissions: ['merchant-menu-management:api:read'],
},
getParents: {
description: 'Get parent entities for an item option',
method: 'get',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/parents',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'GetMerchantItemOptionParentsRequest',
isMultipart: false,
originalName: 'getParents',
isWrite: false,
permissions: ['merchant-menu-management:api:read'],
},
getChildren: {
description: 'Get child entities for an item option',
method: 'get',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/children',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'GetMerchantItemOptionChildrenRequest',
isMultipart: false,
originalName: 'getChildren',
isWrite: false,
permissions: ['merchant-menu-management:api:read'],
},
create: {
description: 'Create a new item option',
method: 'post',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
],
queryParams: [],
requestType: 'CreateMerchantItemOptionRequest',
isMultipart: false,
originalName: 'create',
isWrite: true,
permissions: ['merchant-menu-management:api:create'],
},
update: {
description: 'Update an item option',
method: 'put',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantItemOptionRequest',
isMultipart: false,
originalName: 'update',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
patch: {
description: 'Partially update an item option',
method: 'patch',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'PatchMerchantItemOptionRequest',
isMultipart: false,
originalName: 'patch',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
delete: {
description: 'Delete an item option',
method: 'delete',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'DeleteMerchantItemOptionRequest',
isMultipart: false,
originalName: 'delete',
isWrite: true,
permissions: ['merchant-menu-management:api:delete'],
},
clone: {
description: 'Clone an item option',
method: 'post',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/clone',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'CloneMerchantItemOptionRequest',
isMultipart: false,
originalName: 'clone',
isWrite: true,
permissions: ['merchant-menu-management:api:create'],
},
updateSelections: {
description: 'Update item base selections for an option',
method: 'patch',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/item-bases',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantItemOptionSelectionsRequest',
isMultipart: false,
originalName: 'updateSelections',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
updateItemBases: {
description: 'Update item bases for an option',
method: 'post',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/item-bases',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantItemOptionItemBasesRequest',
isMultipart: false,
originalName: 'updateItemBases',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
updateStoreItemProperties: {
description: 'Update store item properties for an option',
method: 'patch',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/store-items',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantItemOptionStoreItemPropertiesRequest',
isMultipart: false,
originalName: 'updateStoreItemProperties',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
updateSelectionsShowOrder: {
description: 'Update show order for selections',
method: 'patch',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/item-bases/show-order',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantItemOptionSelectionsShowOrderRequest',
isMultipart: false,
originalName: 'updateSelectionsShowOrder',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
patchMod: {
description: 'Patch mods for an item option',
method: 'patch',
path: '/storeItems/api/v2/merchant/{merchantId}/item-options/{uniqueName}/mods',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
{
name: 'uniqueName',
type: 'string',
description: 'Option unique name',
required: true,
},
],
queryParams: [],
requestType: 'PatchMerchantItemOptionModsRequest',
isMultipart: false,
originalName: 'patchMod',
isWrite: true,
permissions: ['merchant-menu-management:api:update'],
},
};
/**
* Handlers for dashboard merchant item options endpoints
*/
export const MerchantItemOptionsHandlers = {
list: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.list, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
get: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.get, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
getVersions: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.getVersions, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
getParents: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.getParents, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
getChildren: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.getChildren, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
create: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.create, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
update: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.update, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
patch: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.patch, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
delete: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.delete, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
clone: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.clone, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
updateSelections: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.updateSelections, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
updateItemBases: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.updateItemBases, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
updateStoreItemProperties: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.updateStoreItemProperties, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
updateSelectionsShowOrder: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.updateSelectionsShowOrder, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
patchMod: async (accessToken, args) => {
return makeRequest(MerchantItemOptionsMethods.patchMod, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
};