UNPKG

@accounter/server

Version:
37 lines 1.5 kB
/** * Extract business information from a document * @param creditorId - Document's creditor_id * @param debtorId - Document's debtor_id * @param adminBusinessId - Current user's ID * @returns Business ID and whether business is the creditor * @throws Error if both or neither IDs match adminBusinessId */ export function extractDocumentBusiness(creditorId, debtorId, adminBusinessId) { // Check if both are null if (creditorId === null && debtorId === null) { throw new Error('Document has both creditor_id and debtor_id as null - invalid document state'); } const isCreditorUser = creditorId === adminBusinessId; const isDebtorUser = debtorId === adminBusinessId; // Both sides are user if (isCreditorUser && isDebtorUser) { throw new Error('Document has both creditor_id and debtor_id equal to user ID - invalid document state'); } // Neither side is user if (!isCreditorUser && !isDebtorUser) { throw new Error('Document has neither creditor_id nor debtor_id equal to user ID - document does not belong to user'); } // User is debtor, business is creditor (or creditor is null) if (isDebtorUser) { return { businessId: creditorId, isBusinessCreditor: true, }; } // User is creditor, business is debtor (or debtor is null) return { businessId: debtorId, isBusinessCreditor: false, }; } //# sourceMappingURL=document-business.helper.js.map