From 8bc41e291e319e65dc9da965c622ffcd99d61a9a Mon Sep 17 00:00:00 2001 From: Yannick1712 Date: Wed, 5 Oct 2022 13:19:27 +0200 Subject: [PATCH] [DEV-839] add bankTxRepeat Tabel + migration --- migration/1664968683394-addBankTxRepeatTable.js | 17 +++++++++++++++++ .../bank-tx-repeat/bank-tx-repeat.entity.ts | 10 ++++++++++ .../bank-tx-repeat/bank-tx-repeat.repository.ts | 5 +++++ .../bank-tx-repeat/bank-tx-repeat.service.ts | 15 +++++++++++++++ src/payment/models/bank-tx/bank-tx.service.ts | 5 +++++ src/payment/payment.module.ts | 4 ++++ 6 files changed, 56 insertions(+) create mode 100644 migration/1664968683394-addBankTxRepeatTable.js create mode 100644 src/payment/models/bank-tx-repeat/bank-tx-repeat.entity.ts create mode 100644 src/payment/models/bank-tx-repeat/bank-tx-repeat.repository.ts create mode 100644 src/payment/models/bank-tx-repeat/bank-tx-repeat.service.ts diff --git a/migration/1664968683394-addBankTxRepeatTable.js b/migration/1664968683394-addBankTxRepeatTable.js new file mode 100644 index 0000000000..3b059f8a1d --- /dev/null +++ b/migration/1664968683394-addBankTxRepeatTable.js @@ -0,0 +1,17 @@ +const { MigrationInterface, QueryRunner } = require("typeorm"); + +module.exports = class addBankTxRepeatTable1664968683394 { + name = 'addBankTxRepeatTable1664968683394' + + async up(queryRunner) { + await queryRunner.query(`CREATE TABLE "bank_tx_repeat" ("id" int NOT NULL IDENTITY(1,1), "updated" datetime2 NOT NULL CONSTRAINT "DF_0e12daa90f36e01e4fde706a574" DEFAULT getdate(), "created" datetime2 NOT NULL CONSTRAINT "DF_c015290f9f9cb210694f0de26a5" DEFAULT getdate(), "bankTxId" int NOT NULL, CONSTRAINT "PK_1007a7041835ff298a818999556" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "REL_9265a19ab44e83ee134738735f" ON "bank_tx_repeat" ("bankTxId") WHERE "bankTxId" IS NOT NULL`); + await queryRunner.query(`ALTER TABLE "bank_tx_repeat" ADD CONSTRAINT "FK_9265a19ab44e83ee134738735f3" FOREIGN KEY ("bankTxId") REFERENCES "bank_tx"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); + } + + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "bank_tx_repeat" DROP CONSTRAINT "FK_9265a19ab44e83ee134738735f3"`); + await queryRunner.query(`DROP INDEX "REL_9265a19ab44e83ee134738735f" ON "bank_tx_repeat"`); + await queryRunner.query(`DROP TABLE "bank_tx_repeat"`); + } +} diff --git a/src/payment/models/bank-tx-repeat/bank-tx-repeat.entity.ts b/src/payment/models/bank-tx-repeat/bank-tx-repeat.entity.ts new file mode 100644 index 0000000000..f62896ebcf --- /dev/null +++ b/src/payment/models/bank-tx-repeat/bank-tx-repeat.entity.ts @@ -0,0 +1,10 @@ +import { Entity, OneToOne, JoinColumn } from 'typeorm'; +import { IEntity } from 'src/shared/models/entity'; +import { BankTx } from '../bank-tx/bank-tx.entity'; + +@Entity() +export class BankTxRepeat extends IEntity { + @OneToOne(() => BankTx, { nullable: false }) + @JoinColumn() + bankTx: BankTx; +} diff --git a/src/payment/models/bank-tx-repeat/bank-tx-repeat.repository.ts b/src/payment/models/bank-tx-repeat/bank-tx-repeat.repository.ts new file mode 100644 index 0000000000..4336d5588c --- /dev/null +++ b/src/payment/models/bank-tx-repeat/bank-tx-repeat.repository.ts @@ -0,0 +1,5 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { BankTxRepeat } from './bank-tx-repeat.entity'; + +@EntityRepository(BankTxRepeat) +export class BankTxRepeatRepository extends Repository {} diff --git a/src/payment/models/bank-tx-repeat/bank-tx-repeat.service.ts b/src/payment/models/bank-tx-repeat/bank-tx-repeat.service.ts new file mode 100644 index 0000000000..3be8c3f267 --- /dev/null +++ b/src/payment/models/bank-tx-repeat/bank-tx-repeat.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@nestjs/common'; +import { BankTx } from '../bank-tx/bank-tx.entity'; +import { BankTxRepeat } from './bank-tx-repeat.entity'; +import { BankTxRepeatRepository } from './bank-tx-repeat.repository'; + +@Injectable() +export class BankTxRepeatService { + constructor(private readonly bankTxRepeatRepo: BankTxRepeatRepository) {} + + async create(bankTx: BankTx): Promise { + const entity = this.bankTxRepeatRepo.create({ bankTx }); + + return await this.bankTxRepeatRepo.save(entity); + } +} diff --git a/src/payment/models/bank-tx/bank-tx.service.ts b/src/payment/models/bank-tx/bank-tx.service.ts index faab7adbae..72f92328f2 100644 --- a/src/payment/models/bank-tx/bank-tx.service.ts +++ b/src/payment/models/bank-tx/bank-tx.service.ts @@ -13,6 +13,7 @@ import { SettingService } from 'src/shared/models/setting/setting.service'; import { FrickService } from './frick.service'; import { OlkypayService } from './olkypay.service'; import { BankTxReturnService } from '../bank-tx-return/bank-tx-return.service'; +import { BankTxRepeatService } from '../bank-tx-repeat/bank-tx-repeat.service'; @Injectable() export class BankTxService { @@ -25,6 +26,7 @@ export class BankTxService { private readonly frickService: FrickService, private readonly olkyService: OlkypayService, private readonly bankTxReturnService: BankTxReturnService, + private readonly bankTxRepeatService: BankTxRepeatService, ) {} // --- TRANSACTION HANDLING --- // @@ -82,6 +84,9 @@ export class BankTxService { case BankTxType.BANK_TX_RETURN: await this.bankTxReturnService.create(bankTx); break; + case BankTxType.BANK_TX_REPEAT: + await this.bankTxRepeatService.create(bankTx); + break; } return await this.bankTxRepo.save(bankTx); diff --git a/src/payment/payment.module.ts b/src/payment/payment.module.ts index 591945ee80..f4a6a1fb2a 100644 --- a/src/payment/payment.module.ts +++ b/src/payment/payment.module.ts @@ -69,6 +69,8 @@ import { ExchangeModule } from './models/exchange/exchange.module'; import { PricingModule } from './models/pricing/pricing.module'; import { BankTxReturnRepository } from './models/bank-tx-return/bank-tx-return.repository'; import { BankTxReturnService } from './models/bank-tx-return/bank-tx-return.service'; +import { BankTxRepeatRepository } from './models/bank-tx-repeat/bank-tx-repeat.repository'; +import { BankTxRepeatService } from './models/bank-tx-repeat/bank-tx-repeat.service'; @Module({ imports: [ @@ -92,6 +94,7 @@ import { BankTxReturnService } from './models/bank-tx-return/bank-tx-return.serv BankAccountRepository, CryptoRouteRepository, BankTxReturnRepository, + BankTxRepeatRepository, ]), SharedModule, AinModule, @@ -153,6 +156,7 @@ import { BankTxReturnService } from './models/bank-tx-return/bank-tx-return.serv CryptoRouteService, ChainalysisService, BankTxReturnService, + BankTxRepeatService, ], exports: [ BuyService,