wip
This commit is contained in:
@@ -35,11 +35,10 @@ import { ThrottlerStorageRedisService } from '@nest-lab/throttler-storage-redis'
|
||||
const password = configService.get<string>('redis.password');
|
||||
const db = configService.get<number>('redis.db');
|
||||
|
||||
// Ensure we always have valid numbers with fallback defaults
|
||||
const globalTtl = configService.get<number>('throttle.global.ttl') ?? 60000;
|
||||
const globalLimit = configService.get<number>('throttle.global.limit') ?? 100;
|
||||
const authTtl = configService.get<number>('throttle.auth.ttl') ?? 60000;
|
||||
const authLimit = configService.get<number>('throttle.auth.limit') ?? 10;
|
||||
const globalTtl = configService.get<number>('throttle.global.ttl');
|
||||
const globalLimit = configService.get<number>('throttle.global.limit');
|
||||
const authTtl = configService.get<number>('throttle.auth.ttl');
|
||||
const authLimit = configService.get<number>('throttle.auth.limit');
|
||||
|
||||
return {
|
||||
throttlers: [
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { BadRequestException, Injectable } from '@nestjs/common';
|
||||
import {
|
||||
ITransactionsByReferencePojo,
|
||||
ITransactionsByReferenceQuery,
|
||||
} from './TransactionsByReference.types';
|
||||
import { TransactionsByReferenceRepository } from './TransactionsByReferenceRepository';
|
||||
import { TransactionsByReference } from './TransactionsByReferenceReport';
|
||||
import { getTransactionsByReferenceQuery } from './_utils';
|
||||
import { TenancyContext } from '@/modules/Tenancy/TenancyContext.service';
|
||||
import { TransactionsByReferenceQueryDto } from './TransactionsByReferenceQuery.dto';
|
||||
|
||||
@Injectable()
|
||||
export class TransactionsByReferenceService {
|
||||
@@ -17,18 +17,12 @@ export class TransactionsByReferenceService {
|
||||
|
||||
/**
|
||||
* Retrieve accounts transactions by given reference id and type.
|
||||
* @param {ITransactionsByReferenceQuery} filter - Transactions by reference query.
|
||||
* @param {TransactionsByReferenceQueryDto} filter - Transactions by reference query.
|
||||
* @returns {Promise<ITransactionsByReferencePojo>}
|
||||
*/
|
||||
public async getTransactionsByReference(
|
||||
query: ITransactionsByReferenceQuery
|
||||
query: TransactionsByReferenceQueryDto
|
||||
): Promise<ITransactionsByReferencePojo> {
|
||||
// Validate referenceId is a valid positive number
|
||||
const referenceId = Number(query.referenceId);
|
||||
if (isNaN(referenceId) || referenceId <= 0) {
|
||||
throw new BadRequestException('referenceId must be a valid positive number');
|
||||
}
|
||||
|
||||
const filter = {
|
||||
...getTransactionsByReferenceQuery(),
|
||||
...query,
|
||||
@@ -37,7 +31,7 @@ export class TransactionsByReferenceService {
|
||||
|
||||
// Retrieve the accounts transactions of the given reference.
|
||||
const transactions = await this.repository.getTransactions(
|
||||
referenceId,
|
||||
query.referenceId,
|
||||
filter.referenceType
|
||||
);
|
||||
// Transactions by reference report.
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { TransactionsByReferenceService } from './TransactionsByReference.service';
|
||||
import { ITransactionsByReferenceQuery } from './TransactionsByReference.types';
|
||||
import { TransactionsByReferenceQueryDto } from './TransactionsByReferenceQuery.dto';
|
||||
|
||||
@Injectable()
|
||||
export class TransactionsByReferenceApplication {
|
||||
constructor(
|
||||
private readonly transactionsByReferenceService: TransactionsByReferenceService,
|
||||
) {}
|
||||
) { }
|
||||
|
||||
/**
|
||||
* Retrieve accounts transactions by given reference id and type.
|
||||
* @param {ITransactionsByReferenceQuery} query - Transactions by reference query.
|
||||
* @param {TransactionsByReferenceQueryDto} query - Transactions by reference query.
|
||||
* @returns {Promise<ITransactionsByReferencePojo>}
|
||||
*/
|
||||
public async getTransactions(query: ITransactionsByReferenceQuery) {
|
||||
public async getTransactions(query: TransactionsByReferenceQueryDto) {
|
||||
return this.transactionsByReferenceService.getTransactionsByReference(
|
||||
query,
|
||||
);
|
||||
|
||||
@@ -18,5 +18,5 @@ export class TransactionsByReferenceQueryDto {
|
||||
example: '1',
|
||||
required: true,
|
||||
})
|
||||
referenceId: string;
|
||||
referenceId: number;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import {
|
||||
ITransactionsByReferenceQuery,
|
||||
ITransactionsByReferenceTransaction,
|
||||
} from './TransactionsByReference.types';
|
||||
import { FinancialSheet } from '../../common/FinancialSheet';
|
||||
import { ModelObject } from 'objection';
|
||||
import { AccountTransaction } from '@/modules/Accounts/models/AccountTransaction.model';
|
||||
import { INumberFormatQuery } from '../../types/Report.types';
|
||||
import { TransactionsByReferenceQueryDto } from './TransactionsByReferenceQuery.dto';
|
||||
|
||||
export class TransactionsByReference extends FinancialSheet {
|
||||
readonly transactions: ModelObject<AccountTransaction>[];
|
||||
readonly query: ITransactionsByReferenceQuery;
|
||||
readonly query: TransactionsByReferenceQueryDto;
|
||||
readonly baseCurrency: string;
|
||||
readonly numberFormat: INumberFormatQuery;
|
||||
|
||||
/**
|
||||
* Constructor method.
|
||||
* @param {ModelObject<AccountTransaction>[]} transactions
|
||||
* @param {ITransactionsByReferenceQuery} query
|
||||
* @param {TransactionsByVendorQueryDto} query
|
||||
* @param {string} baseCurrency
|
||||
*/
|
||||
constructor(
|
||||
transactions: ModelObject<AccountTransaction>[],
|
||||
query: ITransactionsByReferenceQuery,
|
||||
query: TransactionsByReferenceQueryDto,
|
||||
baseCurrency: string
|
||||
) {
|
||||
super();
|
||||
@@ -46,12 +46,9 @@ export class TransactionsByReference extends FinancialSheet {
|
||||
credit: this.getAmountMeta(transaction.credit, { money: false }),
|
||||
debit: this.getAmountMeta(transaction.debit, { money: false }),
|
||||
|
||||
// @ts-ignore
|
||||
// formattedReferenceType: transaction.referenceTypeFormatted,
|
||||
formattedReferenceType: '',
|
||||
|
||||
referenceType: transaction.referenceType,
|
||||
referenceId: transaction.referenceId,
|
||||
formattedReferenceType: transaction.referenceTypeFormatted,
|
||||
|
||||
contactId: transaction.contactId,
|
||||
contactType: transaction.contactType,
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Injectable } from '@nestjs/common';
|
||||
import { I18nService } from 'nestjs-i18n';
|
||||
import { EventEmitter2 } from '@nestjs/event-emitter';
|
||||
import {
|
||||
ITransactionsByVendorsFilter,
|
||||
ITransactionsByVendorsStatement,
|
||||
} from './TransactionsByVendor.types';
|
||||
import { TransactionsByVendor } from './TransactionsByVendor';
|
||||
@@ -10,6 +9,7 @@ import { TransactionsByVendorRepository } from './TransactionsByVendorRepository
|
||||
import { TransactionsByVendorMeta } from './TransactionsByVendorMeta';
|
||||
import { getTransactionsByVendorDefaultQuery } from './utils';
|
||||
import { events } from '@/common/events/events';
|
||||
import { TransactionsByVendorQueryDto } from './TransactionsByVendorQuery.dto';
|
||||
|
||||
@Injectable()
|
||||
export class TransactionsByVendorsInjectable {
|
||||
@@ -18,15 +18,15 @@ export class TransactionsByVendorsInjectable {
|
||||
private readonly transactionsByVendorMeta: TransactionsByVendorMeta,
|
||||
private readonly eventPublisher: EventEmitter2,
|
||||
private readonly i18n: I18nService,
|
||||
) {}
|
||||
) { }
|
||||
|
||||
/**
|
||||
* Retrieve transactions by by the customers.
|
||||
* @param {ITransactionsByVendorsFilter} query - Transactions by vendors filter.
|
||||
* @param {TransactionsByVendorQueryDto} query - Transactions by vendors filter.
|
||||
* @return {Promise<ITransactionsByVendorsStatement>}
|
||||
*/
|
||||
public async transactionsByVendors(
|
||||
query: ITransactionsByVendorsFilter,
|
||||
query: TransactionsByVendorQueryDto,
|
||||
): Promise<ITransactionsByVendorsStatement> {
|
||||
const filter = { ...getTransactionsByVendorDefaultQuery(), ...query };
|
||||
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import { TransactionsByVendorsTable } from './TransactionsByVendorTable';
|
||||
import {
|
||||
ITransactionsByVendorTable,
|
||||
ITransactionsByVendorsFilter,
|
||||
} from './TransactionsByVendor.types';
|
||||
import { TransactionsByVendorsInjectable } from './TransactionsByVendorInjectable';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { I18nService } from 'nestjs-i18n';
|
||||
import { TransactionsByVendorQueryDto } from './TransactionsByVendorQuery.dto';
|
||||
|
||||
@Injectable()
|
||||
export class TransactionsByVendorTableInjectable {
|
||||
constructor(
|
||||
private readonly transactionsByVendor: TransactionsByVendorsInjectable,
|
||||
private readonly i18n: I18nService
|
||||
) {}
|
||||
) { }
|
||||
|
||||
/**
|
||||
* Retrieves the transactions by vendor in table format.
|
||||
* @param {ITransactionsByReferenceQuery} query - The filter query.
|
||||
* @param {TransactionsByVendorQueryDto} query - The filter query.
|
||||
* @returns {Promise<ITransactionsByVendorTable>}
|
||||
*/
|
||||
public async table(
|
||||
query: ITransactionsByVendorsFilter
|
||||
query: TransactionsByVendorQueryDto
|
||||
): Promise<ITransactionsByVendorTable> {
|
||||
const sheet = await this.transactionsByVendor.transactionsByVendors(
|
||||
query
|
||||
|
||||
Reference in New Issue
Block a user