apps/gateway/src/services/providers/accounting.ts
Metadata
- Purpose: Gateway service module implementing business logic or integrations.
- Domain:
applications - Language:
ts - Bytes: 1900
- Lines: 71
- Content hash (short):
d5287039 - Source (start): apps/gateway/src/services/providers/accounting.ts:1
- Source (end): apps/gateway/src/services/providers/accounting.ts:71
Indexed Symbols
sendAccountingSync(line 16, function) - Implements send accounting sync for service-layer operations.
Markdown Headings (if applicable)
No markdown headings detected.
Source Preview
import { env } from "../../config/env.js";
import { resolveSecretValue } from "../runtime-config.js";
type AccountingSyncInput = {
workspaceId: string;
provider: "quickbooks" | "xero";
syncType: "customers" | "invoices" | "payments" | "catalog";
since?: string;
};
const providerEndpointEnvMap = {
quickbooks: "QUICKBOOKS_SYNC_URL",
xero: "XERO_SYNC_URL"
} as const;
export async function sendAccountingSync(input: AccountingSyncInput): Promise<{ provider: string; accepted: boolean; details?: unknown }> {
const endpointEnv = providerEndpointEnvMap[input.provider];
const tokenKey = input.provider === "quickbooks" ? "QUICKBOOKS_API_TOKEN" : "XERO_API_TOKEN";
const endpoint = await resolveSecretValue({
scopeType: "workspace",
workspaceId: input.workspaceId,
key: endpointEnv,
fallbackEnv: endpointEnv
});