@goparrot/franchise-mcp-server
Version:
MCP Server for Franchise API
111 lines (110 loc) • 3.19 kB
JavaScript
import { dashboardBaseUrl, makeRequest } from '../../common/index.js';
/**
* Method information for dashboard merchant endpoints
*/
export const MerchantMethods = {
create: {
description: 'Create a new merchant',
method: 'post',
path: '/store-v2/api/v2/merchants',
pathParams: [],
queryParams: [],
requestType: 'CreateMerchantDto',
isMultipart: false,
originalName: 'create',
isWrite: true,
permissions: [], // No explicit permissions as this is handled by auth user check
},
get: {
description: 'Get merchant by ID',
method: 'get',
path: '/store-v2/api/v2/merchants/{merchantId}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID (auto-populated from auth context)',
internal: true,
required: true,
populatedFrom: 'x-access-token',
},
],
queryParams: [],
requestType: 'GetMerchantRequest',
isMultipart: false,
originalName: 'get',
isWrite: false,
permissions: ['merchant:api:read'],
},
patch: {
description: 'Partially update merchant',
method: 'patch',
path: '/store-v2/api/v2/merchants/{merchantId}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
],
queryParams: [],
requestType: 'PatchMerchantDto',
isMultipart: false,
originalName: 'patch',
isWrite: true,
permissions: ['merchant:api:update'],
},
update: {
description: 'Update merchant',
method: 'put',
path: '/store-v2/api/v2/merchants/{merchantId}',
pathParams: [
{
name: 'merchantId',
type: 'string',
description: 'Merchant ID',
required: true,
},
],
queryParams: [],
requestType: 'UpdateMerchantDto',
isMultipart: false,
originalName: 'update',
isWrite: true,
permissions: ['merchant:api:update'],
},
};
/**
* Handlers for dashboard merchant endpoints
*/
export const MerchantHandlers = {
create: async (accessToken, args) => {
return makeRequest(MerchantMethods.create, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
get: async (accessToken, args) => {
return makeRequest(MerchantMethods.get, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
patch: async (accessToken, args) => {
return makeRequest(MerchantMethods.patch, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
update: async (accessToken, args) => {
return makeRequest(MerchantMethods.update, {
baseUrl: dashboardBaseUrl,
accessToken,
args,
});
},
};