Files
bigcapital/packages/server-nest/src/modules/Customers/commands/GetCustomers.ts
2024-12-25 00:43:55 +02:00

77 lines
2.2 KiB
TypeScript

// import { Inject, Service } from 'typedi';
// import * as R from 'ramda';
// import {
// ICustomer,
// ICustomersFilter,
// IFilterMeta,
// IPaginationMeta,
// } from '@/interfaces';
// import HasTenancyService from '@/services/Tenancy/TenancyService';
// import DynamicListingService from '@/services/DynamicListing/DynamicListService';
// import CustomerTransfromer from '../queries/CustomerTransformer';
// import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
// @Service()
// export class GetCustomers {
// @Inject()
// private tenancy: HasTenancyService;
// @Inject()
// private dynamicListService: DynamicListingService;
// @Inject()
// private transformer: TransformerInjectable;
// /**
// * Parses customers list filter DTO.
// * @param filterDTO -
// */
// private parseCustomersListFilterDTO(filterDTO) {
// return R.compose(this.dynamicListService.parseStringifiedFilter)(filterDTO);
// }
// /**
// * Retrieve customers paginated list.
// * @param {number} tenantId - Tenant id.
// * @param {ICustomersFilter} filter - Cusotmers filter.
// */
// public async getCustomersList(
// filterDTO: ICustomersFilter
// ): Promise<{
// customers: ICustomer[];
// pagination: IPaginationMeta;
// filterMeta: IFilterMeta;
// }> {
// const { Customer } = this.tenancy.models(tenantId);
// // Parses customers list filter DTO.
// const filter = this.parseCustomersListFilterDTO(filterDTO);
// // Dynamic list.
// const dynamicList = await this.dynamicListService.dynamicList(
// tenantId,
// Customer,
// filter
// );
// // Customers.
// const { results, pagination } = await Customer.query()
// .onBuild((builder) => {
// dynamicList.buildQuery()(builder);
// builder.modify('inactiveMode', filter.inactiveMode);
// })
// .pagination(filter.page - 1, filter.pageSize);
// // Retrieves the transformed customers.
// const customers = await this.transformer.transform(
// tenantId,
// results,
// new CustomerTransfromer()
// );
// return {
// customers,
// pagination,
// filterMeta: dynamicList.getResponseMeta(),
// };
// }
// }