Skip to main content
Glama
bill-vendor.ts3.96 kB
/** * Mock BillVendor Responses * * Factory functions for creating mock FreshBooks API responses for vendors. */ /** * Create a mock vendor object */ export function createMockVendor(overrides: Partial<any> = {}): any { return { id: 12345, vendorName: 'Acme Supplies Inc', contactName: 'John Smith', email: 'john@acmesupplies.com', phone: '555-123-4567', website: 'https://www.acmesupplies.com', address: '123 Main Street', city: 'New York', province: 'NY', postalCode: '10001', country: 'United States', currencyCode: 'USD', accountNumber: 'ACCT-001', taxNumber: '12-3456789', note: 'Primary office supplies vendor', is1099: false, language: 'en', visState: 0, createdAt: '2024-01-15T10:00:00Z', updatedAt: '2024-01-15T10:00:00Z', ...overrides, }; } /** * Create a mock list response for vendors */ export function mockVendorListResponse( count: number = 10, page: number = 1, perPage: number = 30 ): any { const vendors = Array.from({ length: count }, (_, i) => createMockVendor({ id: 10000 + i, vendorName: `Vendor ${i + 1}`, email: `vendor${i + 1}@example.com`, currencyCode: i % 3 === 0 ? 'CAD' : 'USD', }) ); return { ok: true, data: { bill_vendors: vendors, pages: { page, pages: Math.ceil(count / perPage), perPage, per_page: perPage, total: count, }, }, }; } /** * Create an empty list response */ export function mockVendorEmptyListResponse(): any { return { ok: true, data: { bill_vendors: [], pages: { page: 1, pages: 0, perPage: 30, per_page: 30, total: 0, }, }, }; } /** * Create a mock single vendor response */ export function mockVendorSingleResponse(overrides: Partial<any> = {}): any { return { ok: true, data: { bill_vendor: createMockVendor(overrides), }, }; } /** * Create a mock create vendor response */ export function mockVendorCreateResponse(input: Partial<any> = {}): any { return { ok: true, data: { bill_vendor: createMockVendor({ id: 99999, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), ...input, }), }, }; } /** * Create a mock update vendor response */ export function mockVendorUpdateResponse(id: number, updates: Partial<any> = {}): any { return { ok: true, data: { bill_vendor: createMockVendor({ id, updatedAt: new Date().toISOString(), ...updates, }), }, }; } /** * Create a mock delete vendor response */ export function mockVendorDeleteResponse(): any { return { ok: true, data: {}, }; } /** * Create a mock not found error */ export function mockVendorNotFoundError(vendorId: number): any { return { ok: false, error: { code: 'NOT_FOUND', message: `Vendor with id ${vendorId} was not found`, statusCode: 404, }, }; } /** * Create a mock validation error */ export function mockVendorValidationError(field: string, message: string): any { return { ok: false, error: { code: 'VALIDATION_ERROR', message: `${field}: ${message}`, statusCode: 400, }, }; } /** * Create a mock conflict error (for vendors with associated bills) */ export function mockVendorHasBillsError(vendorId: number): any { return { ok: false, error: { code: 'CONFLICT', message: `Vendor ${vendorId} has associated bills and cannot be deleted`, statusCode: 409, }, }; } /** * Create a mock duplicate vendor error */ export function mockVendorDuplicateError(vendorName: string): any { return { ok: false, error: { code: 'DUPLICATE', message: `A vendor with the name '${vendorName}' already exists`, statusCode: 409, }, }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Good-Samaritan-Software-LLC/freshbooks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server