42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { Inject, Injectable } from '@nestjs/common';
|
|
import { ImportModel } from './models/Import';
|
|
import { ImportFileMetaTransformer } from './ImportFileMetaTransformer';
|
|
import { TransformerInjectable } from '../Transformer/TransformerInjectable.service';
|
|
import { TenancyContext } from '../Tenancy/TenancyContext.service';
|
|
|
|
@Injectable()
|
|
export class ImportFileMeta {
|
|
/**
|
|
* @param {TransformerInjectable} transformer - Transformer injectable service.
|
|
* @param {TenancyContext} tenancyContext - Tenancy context service.
|
|
* @param {typeof ImportModel} importModel - Import model.
|
|
*/
|
|
constructor(
|
|
private readonly transformer: TransformerInjectable,
|
|
private readonly tenancyContext: TenancyContext,
|
|
|
|
@Inject(ImportModel.name)
|
|
private readonly importModel: typeof ImportModel,
|
|
) {}
|
|
|
|
/**
|
|
* Retrieves the import meta of the given import model id.
|
|
* @param {string} importId - Import id.
|
|
*/
|
|
async getImportMeta(importId: string) {
|
|
const tenant = await this.tenancyContext.getTenant();
|
|
const tenantId = tenant.id;
|
|
|
|
const importFile = await this.importModel
|
|
.query()
|
|
.where('tenantId', tenantId)
|
|
.findOne('importId', importId);
|
|
|
|
// Retrieves the transformed accounts collection.
|
|
return this.transformer.transform(
|
|
importFile,
|
|
new ImportFileMetaTransformer(),
|
|
);
|
|
}
|
|
}
|