@develit-services/bank 0.0.36 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export/worker.cjs +41 -40
- package/dist/export/worker.d.cts +4 -3
- package/dist/export/worker.d.mts +4 -3
- package/dist/export/worker.d.ts +4 -3
- package/dist/export/worker.mjs +41 -40
- package/package.json +1 -1
package/dist/export/worker.cjs
CHANGED
|
@@ -233,14 +233,13 @@ const getCredentialsByAccountId = async (db, { accountId }) => {
|
|
|
233
233
|
return cred;
|
|
234
234
|
};
|
|
235
235
|
|
|
236
|
-
const
|
|
237
|
-
|
|
236
|
+
const getAccountOpenBatchesQuery = async (db, { accountId }) => {
|
|
237
|
+
return await db.select().from(database_schema.tables.batch).where(
|
|
238
238
|
drizzleOrm.and(
|
|
239
239
|
drizzleOrm.eq(database_schema.tables.batch.accountId, accountId),
|
|
240
240
|
drizzleOrm.eq(database_schema.tables.batch.status, "OPEN")
|
|
241
241
|
)
|
|
242
|
-
)
|
|
243
|
-
return batch;
|
|
242
|
+
);
|
|
244
243
|
};
|
|
245
244
|
|
|
246
245
|
const getOttQuery = async (db, { ott }) => {
|
|
@@ -637,35 +636,40 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
|
|
|
637
636
|
}
|
|
638
637
|
);
|
|
639
638
|
}
|
|
639
|
+
batchLimit(connectorKey) {
|
|
640
|
+
return 50;
|
|
641
|
+
}
|
|
640
642
|
async addPaymentsToBatch({
|
|
641
643
|
paymentsToBatch
|
|
642
644
|
}) {
|
|
643
645
|
return this.handleAction(null, {}, async () => {
|
|
644
646
|
this.logInput({ paymentsToBatch });
|
|
645
647
|
const mappedPayments = paymentsToBatch.map(
|
|
646
|
-
(payment) =>
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
648
|
+
(payment) => {
|
|
649
|
+
return {
|
|
650
|
+
id: backendSdk.uuidv4(),
|
|
651
|
+
accountId: "",
|
|
652
|
+
refId: payment.refId,
|
|
653
|
+
connectorKey: "MOCK",
|
|
654
|
+
amount: payment.amount,
|
|
655
|
+
direction: "OUTGOING",
|
|
656
|
+
paymentType: payment.paymentType,
|
|
657
|
+
currency: payment.currency,
|
|
658
|
+
status: "CREATED",
|
|
659
|
+
initiatedAt: /* @__PURE__ */ new Date(),
|
|
660
|
+
processedAt: null,
|
|
661
|
+
vs: payment.vs || null,
|
|
662
|
+
ss: payment.ss || null,
|
|
663
|
+
ks: payment.ks || null,
|
|
664
|
+
message: payment.message || null,
|
|
665
|
+
creditorHolderName: payment.creditorHolderName,
|
|
666
|
+
creditorAccountNumberWithBankCode: payment.creditorAccountNumberWithBankCode,
|
|
667
|
+
creditorIban: payment.creditorIban,
|
|
668
|
+
debtorHolderName: payment.debtorHolderName,
|
|
669
|
+
debtorAccountNumberWithBankCode: payment.debtorAccountNumberWithBankCode,
|
|
670
|
+
debtorIban: payment.debtorIban
|
|
671
|
+
};
|
|
672
|
+
}
|
|
669
673
|
);
|
|
670
674
|
const { supportedPayments, unsupportedPayments } = seperateSupportedPayments(
|
|
671
675
|
mappedPayments,
|
|
@@ -710,22 +714,19 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
|
|
|
710
714
|
this.log({
|
|
711
715
|
message: `\u{1F4B0} Processing ${newPayments.length} payments for account (${acc.iban}, ${acc.currency})`
|
|
712
716
|
});
|
|
713
|
-
const
|
|
717
|
+
const openBatches = await getAccountOpenBatchesQuery(this.db, {
|
|
714
718
|
accountId: acc.id
|
|
715
719
|
});
|
|
716
|
-
|
|
717
|
-
this.
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
message: `\u2728 Creating new batch for account ${acc.id} with ${newPayments.length} payments`
|
|
723
|
-
});
|
|
724
|
-
}
|
|
720
|
+
const availableBatch = openBatches.find(
|
|
721
|
+
(batch) => batch.payments.length >= this.batchLimit(acc.connectorKey)
|
|
722
|
+
);
|
|
723
|
+
this.log({
|
|
724
|
+
message: availableBatch ? `\u{1F504} Found existing OPEN batches for account ${acc.id}, merging ${availableBatch.payments.length} existing + ${newPayments.length} new payments` : `\u2728 Creating new batch for account ${acc.id} with ${newPayments.length} payments`
|
|
725
|
+
});
|
|
725
726
|
const { command } = upsertBatchCommand(this.db, {
|
|
726
|
-
batch:
|
|
727
|
-
...
|
|
728
|
-
payments: [...
|
|
727
|
+
batch: availableBatch ? {
|
|
728
|
+
...availableBatch,
|
|
729
|
+
payments: [...availableBatch.payments, ...newPayments]
|
|
729
730
|
} : {
|
|
730
731
|
id: backendSdk.uuidv4(),
|
|
731
732
|
authorizationUrls: [],
|
package/dist/export/worker.d.cts
CHANGED
|
@@ -225,9 +225,9 @@ declare const getBatchesInputSchema: z.ZodObject<{
|
|
|
225
225
|
limit: z.ZodNumber;
|
|
226
226
|
sort: z.ZodObject<{
|
|
227
227
|
column: z.ZodEnum<{
|
|
228
|
+
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
228
229
|
createdAt: "createdAt";
|
|
229
230
|
updatedAt: "updatedAt";
|
|
230
|
-
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
231
231
|
}>;
|
|
232
232
|
direction: z.ZodEnum<{
|
|
233
233
|
asc: "asc";
|
|
@@ -475,17 +475,18 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
475
475
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
476
476
|
updateBatchStatuses(): Promise<void>;
|
|
477
477
|
initiateBankConnector(input: initiateConnectorInput): Promise<initiateConnectorOutput>;
|
|
478
|
+
batchLimit(connectorKey: ConnectorKey): number;
|
|
478
479
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
|
479
480
|
paymentsToBatch: SendPaymentInput[];
|
|
480
481
|
}): Promise<IRPCResponse<{
|
|
482
|
+
batchPaymentInitiatedAt: Date | null;
|
|
483
|
+
authorizationUrls: string | string[] | null;
|
|
481
484
|
status: "OPEN" | "PROCESSING" | "READY_TO_SIGN" | "WAITING_FOR_PROCESSING" | "PREPARED" | "COMPLETED" | "FAILED" | null;
|
|
482
485
|
id: string;
|
|
483
486
|
createdAt: Date | null;
|
|
484
487
|
updatedAt: Date | null;
|
|
485
488
|
deletedAt: Date | null;
|
|
486
489
|
accountId: string | null;
|
|
487
|
-
batchPaymentInitiatedAt: Date | null;
|
|
488
|
-
authorizationUrls: string | string[] | null;
|
|
489
490
|
payments: PaymentInsertType[];
|
|
490
491
|
metadata: object | null;
|
|
491
492
|
}[] | undefined>>;
|
package/dist/export/worker.d.mts
CHANGED
|
@@ -225,9 +225,9 @@ declare const getBatchesInputSchema: z.ZodObject<{
|
|
|
225
225
|
limit: z.ZodNumber;
|
|
226
226
|
sort: z.ZodObject<{
|
|
227
227
|
column: z.ZodEnum<{
|
|
228
|
+
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
228
229
|
createdAt: "createdAt";
|
|
229
230
|
updatedAt: "updatedAt";
|
|
230
|
-
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
231
231
|
}>;
|
|
232
232
|
direction: z.ZodEnum<{
|
|
233
233
|
asc: "asc";
|
|
@@ -475,17 +475,18 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
475
475
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
476
476
|
updateBatchStatuses(): Promise<void>;
|
|
477
477
|
initiateBankConnector(input: initiateConnectorInput): Promise<initiateConnectorOutput>;
|
|
478
|
+
batchLimit(connectorKey: ConnectorKey): number;
|
|
478
479
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
|
479
480
|
paymentsToBatch: SendPaymentInput[];
|
|
480
481
|
}): Promise<IRPCResponse<{
|
|
482
|
+
batchPaymentInitiatedAt: Date | null;
|
|
483
|
+
authorizationUrls: string | string[] | null;
|
|
481
484
|
status: "OPEN" | "PROCESSING" | "READY_TO_SIGN" | "WAITING_FOR_PROCESSING" | "PREPARED" | "COMPLETED" | "FAILED" | null;
|
|
482
485
|
id: string;
|
|
483
486
|
createdAt: Date | null;
|
|
484
487
|
updatedAt: Date | null;
|
|
485
488
|
deletedAt: Date | null;
|
|
486
489
|
accountId: string | null;
|
|
487
|
-
batchPaymentInitiatedAt: Date | null;
|
|
488
|
-
authorizationUrls: string | string[] | null;
|
|
489
490
|
payments: PaymentInsertType[];
|
|
490
491
|
metadata: object | null;
|
|
491
492
|
}[] | undefined>>;
|
package/dist/export/worker.d.ts
CHANGED
|
@@ -225,9 +225,9 @@ declare const getBatchesInputSchema: z.ZodObject<{
|
|
|
225
225
|
limit: z.ZodNumber;
|
|
226
226
|
sort: z.ZodObject<{
|
|
227
227
|
column: z.ZodEnum<{
|
|
228
|
+
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
228
229
|
createdAt: "createdAt";
|
|
229
230
|
updatedAt: "updatedAt";
|
|
230
|
-
batchPaymentInitiatedAt: "batchPaymentInitiatedAt";
|
|
231
231
|
}>;
|
|
232
232
|
direction: z.ZodEnum<{
|
|
233
233
|
asc: "asc";
|
|
@@ -475,17 +475,18 @@ declare class BankServiceBase extends BankServiceBase_base {
|
|
|
475
475
|
scheduled(controller: ScheduledController): Promise<void>;
|
|
476
476
|
updateBatchStatuses(): Promise<void>;
|
|
477
477
|
initiateBankConnector(input: initiateConnectorInput): Promise<initiateConnectorOutput>;
|
|
478
|
+
batchLimit(connectorKey: ConnectorKey): number;
|
|
478
479
|
addPaymentsToBatch({ paymentsToBatch, }: {
|
|
479
480
|
paymentsToBatch: SendPaymentInput[];
|
|
480
481
|
}): Promise<IRPCResponse<{
|
|
482
|
+
batchPaymentInitiatedAt: Date | null;
|
|
483
|
+
authorizationUrls: string | string[] | null;
|
|
481
484
|
status: "OPEN" | "PROCESSING" | "READY_TO_SIGN" | "WAITING_FOR_PROCESSING" | "PREPARED" | "COMPLETED" | "FAILED" | null;
|
|
482
485
|
id: string;
|
|
483
486
|
createdAt: Date | null;
|
|
484
487
|
updatedAt: Date | null;
|
|
485
488
|
deletedAt: Date | null;
|
|
486
489
|
accountId: string | null;
|
|
487
|
-
batchPaymentInitiatedAt: Date | null;
|
|
488
|
-
authorizationUrls: string | string[] | null;
|
|
489
490
|
payments: PaymentInsertType[];
|
|
490
491
|
metadata: object | null;
|
|
491
492
|
}[] | undefined>>;
|
package/dist/export/worker.mjs
CHANGED
|
@@ -229,14 +229,13 @@ const getCredentialsByAccountId = async (db, { accountId }) => {
|
|
|
229
229
|
return cred;
|
|
230
230
|
};
|
|
231
231
|
|
|
232
|
-
const
|
|
233
|
-
|
|
232
|
+
const getAccountOpenBatchesQuery = async (db, { accountId }) => {
|
|
233
|
+
return await db.select().from(tables.batch).where(
|
|
234
234
|
and(
|
|
235
235
|
eq(tables.batch.accountId, accountId),
|
|
236
236
|
eq(tables.batch.status, "OPEN")
|
|
237
237
|
)
|
|
238
|
-
)
|
|
239
|
-
return batch;
|
|
238
|
+
);
|
|
240
239
|
};
|
|
241
240
|
|
|
242
241
|
const getOttQuery = async (db, { ott }) => {
|
|
@@ -633,35 +632,40 @@ let BankServiceBase = class extends develitWorker(WorkerEntrypoint) {
|
|
|
633
632
|
}
|
|
634
633
|
);
|
|
635
634
|
}
|
|
635
|
+
batchLimit(connectorKey) {
|
|
636
|
+
return 50;
|
|
637
|
+
}
|
|
636
638
|
async addPaymentsToBatch({
|
|
637
639
|
paymentsToBatch
|
|
638
640
|
}) {
|
|
639
641
|
return this.handleAction(null, {}, async () => {
|
|
640
642
|
this.logInput({ paymentsToBatch });
|
|
641
643
|
const mappedPayments = paymentsToBatch.map(
|
|
642
|
-
(payment) =>
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
644
|
+
(payment) => {
|
|
645
|
+
return {
|
|
646
|
+
id: uuidv4(),
|
|
647
|
+
accountId: "",
|
|
648
|
+
refId: payment.refId,
|
|
649
|
+
connectorKey: "MOCK",
|
|
650
|
+
amount: payment.amount,
|
|
651
|
+
direction: "OUTGOING",
|
|
652
|
+
paymentType: payment.paymentType,
|
|
653
|
+
currency: payment.currency,
|
|
654
|
+
status: "CREATED",
|
|
655
|
+
initiatedAt: /* @__PURE__ */ new Date(),
|
|
656
|
+
processedAt: null,
|
|
657
|
+
vs: payment.vs || null,
|
|
658
|
+
ss: payment.ss || null,
|
|
659
|
+
ks: payment.ks || null,
|
|
660
|
+
message: payment.message || null,
|
|
661
|
+
creditorHolderName: payment.creditorHolderName,
|
|
662
|
+
creditorAccountNumberWithBankCode: payment.creditorAccountNumberWithBankCode,
|
|
663
|
+
creditorIban: payment.creditorIban,
|
|
664
|
+
debtorHolderName: payment.debtorHolderName,
|
|
665
|
+
debtorAccountNumberWithBankCode: payment.debtorAccountNumberWithBankCode,
|
|
666
|
+
debtorIban: payment.debtorIban
|
|
667
|
+
};
|
|
668
|
+
}
|
|
665
669
|
);
|
|
666
670
|
const { supportedPayments, unsupportedPayments } = seperateSupportedPayments(
|
|
667
671
|
mappedPayments,
|
|
@@ -706,22 +710,19 @@ let BankServiceBase = class extends develitWorker(WorkerEntrypoint) {
|
|
|
706
710
|
this.log({
|
|
707
711
|
message: `\u{1F4B0} Processing ${newPayments.length} payments for account (${acc.iban}, ${acc.currency})`
|
|
708
712
|
});
|
|
709
|
-
const
|
|
713
|
+
const openBatches = await getAccountOpenBatchesQuery(this.db, {
|
|
710
714
|
accountId: acc.id
|
|
711
715
|
});
|
|
712
|
-
|
|
713
|
-
this.
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
message: `\u2728 Creating new batch for account ${acc.id} with ${newPayments.length} payments`
|
|
719
|
-
});
|
|
720
|
-
}
|
|
716
|
+
const availableBatch = openBatches.find(
|
|
717
|
+
(batch) => batch.payments.length >= this.batchLimit(acc.connectorKey)
|
|
718
|
+
);
|
|
719
|
+
this.log({
|
|
720
|
+
message: availableBatch ? `\u{1F504} Found existing OPEN batches for account ${acc.id}, merging ${availableBatch.payments.length} existing + ${newPayments.length} new payments` : `\u2728 Creating new batch for account ${acc.id} with ${newPayments.length} payments`
|
|
721
|
+
});
|
|
721
722
|
const { command } = upsertBatchCommand(this.db, {
|
|
722
|
-
batch:
|
|
723
|
-
...
|
|
724
|
-
payments: [...
|
|
723
|
+
batch: availableBatch ? {
|
|
724
|
+
...availableBatch,
|
|
725
|
+
payments: [...availableBatch.payments, ...newPayments]
|
|
725
726
|
} : {
|
|
726
727
|
id: uuidv4(),
|
|
727
728
|
authorizationUrls: [],
|