UNPKG

@goparrot/franchise-mcp-server

Version:

MCP Server for Franchise API

160 lines (159 loc) 4.71 kB
import { dashboardBaseUrl, makeRequest } from '../../common/index.js'; /** * Method information for dashboard store endpoints */ export const StoreMethods = { list: { description: 'Fetch all stores associated with a given merchant identifier—whether a franchisee ID, merchant ID, or membership ID—and optionally restrict the results to a specified list of store IDs', method: 'get', path: '/api/v2/store-v2/api/v2/merchants/{merchantId}/stores', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', required: true, }, ], queryParams: [ { name: 'storeIds', type: 'string', description: 'Optional comma-separated list of store IDs', required: false, }, ], requestType: 'ListStoresRequest', isMultipart: false, originalName: 'list', isWrite: false, permissions: ['store:api:read'], }, create: { description: 'Create a new store for merchant', method: 'post', path: '/api/v2/store-v2/api/v2/merchants/{merchantId}/stores', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', }, ], queryParams: [], requestType: 'CreateStoreRequest', isMultipart: false, originalName: 'create', isWrite: true, permissions: ['store:api:create'], }, update: { description: 'Update store by ID', method: 'put', path: '/api/v2/store-v2/api/v2/merchants/{merchantId}/stores/{storeId}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', }, { name: 'storeId', type: 'string', description: 'Store ID', }, ], queryParams: [], requestType: 'UpdateStoreRequest', isMultipart: false, originalName: 'update', isWrite: true, permissions: ['store:api:update'], }, patch: { description: 'Partially update store by ID', method: 'patch', path: '/api/v2/store-v2/api/v2/merchants/{merchantId}/stores/{storeId}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', }, { name: 'storeId', type: 'string', description: 'Store ID', }, ], queryParams: [], requestType: 'PatchStoreRequest', isMultipart: false, originalName: 'patch', isWrite: true, permissions: ['store:api:update'], }, delete: { description: 'Delete store by ID', method: 'delete', path: '/api/v2/store-v2/api/v2/merchants/{merchantId}/stores/{storeId}', pathParams: [ { name: 'merchantId', type: 'string', description: 'Merchant ID', }, { name: 'storeId', type: 'string', description: 'Store ID', }, ], queryParams: [], requestType: 'DeleteStoreRequest', isMultipart: false, originalName: 'delete', isWrite: true, permissions: ['store:api:delete'], }, }; /** * Handlers for dashboard store endpoints */ export const StoreHandlers = { list: async (accessToken, args) => { return makeRequest(StoreMethods.list, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, create: async (accessToken, args) => { return makeRequest(StoreMethods.create, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, update: async (accessToken, args) => { return makeRequest(StoreMethods.update, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, patch: async (accessToken, args) => { return makeRequest(StoreMethods.patch, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, delete: async (accessToken, args) => { return makeRequest(StoreMethods.delete, { baseUrl: dashboardBaseUrl, accessToken, args, }); }, };