UNPKG

quickbooks-api

Version:

A modular TypeScript SDK for seamless integration with Intuit QuickBooks APIs. Provides robust authentication handling and future-ready foundation for accounting, payments, and commerce operations.

54 lines (47 loc) 1.3 kB
// Imports import { type Invoice, type Query, InvoiceFilters } from '../../../types/types'; import { BaseQueryBuilder } from '../common/base-query-builder'; /** * The Invoice Query Builder */ export class InvoiceQueryBuilder extends BaseQueryBuilder<Invoice> { /** * Constructor * @param endpoint - The Endpoint * @param baseQuery - The Base Query */ constructor(endpoint: string, baseQuery: Query) { super(endpoint, baseQuery); } /** * Where Due Date * @param date - The due date * @returns The Query Builder */ public whereDueDate(date: Date): this { this.whereClauses.push(`${InvoiceFilters.DueDate} = '${date.toISOString()}'`); return this; } /** * Where Customer ID * @param customerId - The customer ID * @returns The Query Builder */ public whereCustomerId(customerId: string): this { this.whereClauses.push(`${InvoiceFilters.CustomerRef} = '${customerId}'`); return this; } /** * Where Status * @param status - The status * @returns The Query Builder */ public whereStatus(status: 'paid' | 'unpaid'): this { // Setup the Operator const operator = status === 'paid' ? '=' : '>'; // Add the Where Clause this.whereClauses.push(`${InvoiceFilters.Balance} ${operator} '0'`); // Return the Query Builder return this; } }