Uecko_ERP/apps/server/src/contexts/invoices/application/services/participantFinder.ts

21 lines
787 B
TypeScript
Raw Normal View History

2025-03-18 08:05:00 +00:00
import { IAdapter, RepositoryBuilder } from "@/contexts/common/domain";
import { UniqueID } from "@shared/contexts";
import { IInvoiceParticipantRepository } from "../../domain";
2025-04-01 14:26:15 +00:00
import { InvoiceCustomer } from "../../domain/entities/invoice-customer/invoice-customer";
2025-03-18 08:05:00 +00:00
export const participantFinder = async (
participantId: UniqueID,
adapter: IAdapter,
2025-04-01 14:26:15 +00:00
repository: RepositoryBuilder<IInvoiceParticipantRepository>
): Promise<InvoiceCustomer | undefined> => {
2025-03-18 08:05:00 +00:00
if (!participantId || (participantId && participantId.isNull())) {
return Promise.resolve(undefined);
}
const participant = await adapter
.startTransaction()
.complete((t) => repository({ transaction: t }).getById(participantId));
return Promise.resolve(participant ? participant : undefined);
};