Skip to main content
Glama
credit-note.ts4.61 kB
/** * Mock responses for CreditNote entity */ /** * Create a mock credit note object */ export function createMockCreditNote(overrides: Record<string, unknown> = {}) { const id = (overrides.id as number) || 12345; return { id, credit_note_number: overrides.creditNoteNumber || `CN-${id}`, creditid: id, clientid: overrides.clientId || 67890, create_date: overrides.createDate || '2024-01-15', amount: overrides.amount || { amount: '100.00', code: 'USD' }, currency_code: overrides.currencyCode || 'USD', status: overrides.status || 'created', display_status: overrides.displayStatus || 'created', dispute_status: overrides.disputeStatus || null, lines: overrides.lines || [ { lineid: 1, name: 'Refund for service', description: 'Credit for returned product', qty: 1, unit_cost: { amount: '100.00', code: 'USD' }, amount: { amount: '100.00', code: 'USD' }, taxName1: null, taxAmount1: null, taxName2: null, taxAmount2: null, }, ], notes: overrides.notes || 'Test credit note', terms: overrides.terms || 'Net 30', language: overrides.language || 'en', organization: overrides.organization || 'Test Company', fname: overrides.fName || 'John', lname: overrides.lName || 'Doe', email: overrides.email || 'john@example.com', address: overrides.address || '123 Main St', city: overrides.city || 'Toronto', province: overrides.province || 'ON', code: overrides.code || 'M5V 2H1', country: overrides.country || 'Canada', vis_state: overrides.visState || 0, created_at: overrides.createdAt || '2024-01-15T10:00:00Z', updated: overrides.updated || '2024-01-15T10:00:00Z', ...overrides, }; } /** * Mock response for credit note list */ export function mockCreditNoteListResponse( count: number = 5, page: number = 1, perPage: number = 30 ) { const creditNotes = Array.from({ length: count }, (_, i) => createMockCreditNote({ id: 12345 + i, creditNoteNumber: `CN-${12345 + i}`, clientId: 67890 + i, }) ); return { ok: true, data: { credit_notes: creditNotes, pages: { page, pages: Math.ceil(count / perPage), per_page: perPage, total: count, }, }, }; } /** * Mock response for empty credit note list */ export function mockCreditNoteEmptyListResponse() { return { ok: true, data: { credit_notes: [], pages: { page: 1, pages: 1, per_page: 30, total: 0, }, }, }; } /** * Mock response for single credit note */ export function mockCreditNoteSingleResponse(overrides: Record<string, unknown> = {}) { return { ok: true, data: { credit_note: createMockCreditNote(overrides), }, }; } /** * Mock response for credit note create */ export function mockCreditNoteCreateResponse(overrides: Record<string, unknown> = {}) { return { ok: true, data: { credit_note: createMockCreditNote({ id: 99999, creditNoteNumber: 'CN-99999', status: 'created', ...overrides, }), }, }; } /** * Mock response for credit note update */ export function mockCreditNoteUpdateResponse( creditNoteId: number, updates: Record<string, unknown> = {} ) { return { ok: true, data: { credit_note: createMockCreditNote({ id: creditNoteId, ...updates, }), }, }; } /** * Mock response for credit note delete */ export function mockCreditNoteDeleteResponse() { return { ok: true, data: {}, }; } /** * Mock not found error */ export function mockCreditNoteNotFoundError(creditNoteId: number) { return { ok: false, error: { code: 'NOT_FOUND', message: `Credit note ${creditNoteId} not found`, statusCode: 404, }, }; } /** * Mock validation error */ export function mockCreditNoteValidationError(field: string, message: string) { return { ok: false, error: { code: 'VALIDATION_ERROR', message: `Validation error: ${field} - ${message}`, statusCode: 400, details: { field, message, }, }, }; } /** * Mock credit note already applied error */ export function mockCreditNoteAlreadyAppliedError(creditNoteId: number) { return { ok: false, error: { code: 'CREDIT_NOTE_APPLIED', message: `Credit note ${creditNoteId} has already been applied and cannot be modified`, statusCode: 400, }, }; }

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