@goparrot/franchise-mcp-server
Version:
MCP Server for Franchise API
160 lines (159 loc) • 4.62 kB
JavaScript
import { dashboardBaseUrl, makeRequest } from '../../common/index.js';
/**
* Method information for dashboard delivery partner endpoints
*/
export const DeliveryMethods = {
create: {
description: 'Create a new delivery partner for a store',
method: 'post',
path: '/delivery/api/v1/stores/{storeId}/partners',
pathParams: [
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
],
queryParams: [],
requestType: 'CreateDeliveryPartnerRequest',
isMultipart: false,
originalName: 'create',
isWrite: true,
permissions: ['delivery:api:create'],
},
list: {
description: 'List all delivery partners for a store',
method: 'get',
path: '/delivery/api/v1/stores/{storeId}/partners',
pathParams: [
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
],
queryParams: [],
requestType: 'ListDeliveryPartnersRequest',
isMultipart: false,
originalName: 'list',
isWrite: false,
permissions: ['delivery:api:read'],
},
get: {
description: 'Get a specific delivery partner by UUID',
method: 'get',
path: '/delivery/api/v1/stores/{storeId}/partners/{uuid}',
pathParams: [
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
{
name: 'uuid',
type: 'string',
description: 'Partner UUID',
required: true,
},
],
queryParams: [],
requestType: 'GetDeliveryPartnerRequest',
isMultipart: false,
originalName: 'get',
isWrite: false,
permissions: ['delivery:api:read'],
},
update: {
description: 'Update an existing delivery partner',
method: 'put',
path: '/delivery/api/v1/stores/{storeId}/partners/{uuid}',
pathParams: [
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
{
name: 'uuid',
type: 'string',
description: 'Partner UUID',
required: true,
},
],
queryParams: [],
requestType: 'UpdateDeliveryPartnerRequest',
isMultipart: false,
originalName: 'update',
isWrite: true,
permissions: ['delivery:api:update'],
},
delete: {
description: 'Delete a delivery partner',
method: 'delete',
path: '/delivery/api/v1/stores/{storeId}/partners/{uuid}',
pathParams: [
{
name: 'storeId',
type: 'string',
description: 'Store ID',
required: true,
},
{
name: 'uuid',
type: 'string',
description: 'Partner UUID',
required: true,
},
],
queryParams: [],
requestType: 'DeleteDeliveryPartnerRequest',
isMultipart: false,
originalName: 'delete',
isWrite: true,
permissions: ['delivery:api:delete'],
},
};
/**
* Handlers for dashboard delivery partner endpoints
*/
export const DeliveryHandlers = {
create: async (accessToken, args) => {
return makeRequest(DeliveryMethods.create, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
list: async (accessToken, args) => {
return makeRequest(DeliveryMethods.list, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
get: async (accessToken, args) => {
return makeRequest(DeliveryMethods.get, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
update: async (accessToken, args) => {
return makeRequest(DeliveryMethods.update, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
delete: async (accessToken, args) => {
return makeRequest(DeliveryMethods.delete, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
};