@solidstarters/solid-core 1.2.92 → 1.2.95
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/# Password field.md +8 -0
- package/dist/controllers/import-transaction.controller.d.ts +2 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +16 -4
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/locale.controller.d.ts +41 -0
- package/dist/controllers/locale.controller.d.ts.map +1 -0
- package/dist/controllers/locale.controller.js +179 -0
- package/dist/controllers/locale.controller.js.map +1 -0
- package/dist/controllers/view-metadata.controller.d.ts +1 -0
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.d.ts +2 -0
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +11 -1
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/create-locale.dto.d.ts +6 -0
- package/dist/dtos/create-locale.dto.d.ts.map +1 -0
- package/dist/dtos/create-locale.dto.js +43 -0
- package/dist/dtos/create-locale.dto.js.map +1 -0
- package/dist/dtos/create-menu-item-metadata.dto.d.ts +2 -1
- package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.js +22 -3
- package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-metadata.dto.d.ts +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +7 -2
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +11 -0
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/update-locale.dto.d.ts +7 -0
- package/dist/dtos/update-locale.dto.d.ts.map +1 -0
- package/dist/dtos/update-locale.dto.js +48 -0
- package/dist/dtos/update-locale.dto.js.map +1 -0
- package/dist/dtos/update-menu-item-metadata.dto.d.ts +2 -1
- package/dist/dtos/update-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.js +24 -5
- package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-role-metadata.dto.js +12 -1
- package/dist/dtos/update-role-metadata.dto.js.map +1 -1
- package/dist/entities/common.entity.d.ts +3 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +13 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/locale.entity.d.ts +7 -0
- package/dist/entities/locale.entity.d.ts.map +1 -0
- package/dist/entities/locale.entity.js +43 -0
- package/dist/entities/locale.entity.js.map +1 -0
- package/dist/entities/menu-item-metadata.entity.d.ts +2 -1
- package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +13 -8
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +1 -0
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +5 -1
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +2 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +5 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +234 -0
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +8 -3
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +17 -2
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +19 -6
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +19 -6
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +214 -87
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +26 -0
- package/dist/services/locale.service.d.ts.map +1 -0
- package/dist/services/locale.service.js +64 -0
- package/dist/services/locale.service.js.map +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +1 -0
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts +9 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js +87 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +4 -2
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +3 -0
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +73 -7
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +8 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/model.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model.subscriber.js +24 -0
- package/dist/subscribers/model.subscriber.js.map +1 -1
- package/dist/transformers/datetime-transformer.d.ts +4 -0
- package/dist/transformers/datetime-transformer.d.ts.map +1 -0
- package/dist/transformers/datetime-transformer.js +11 -0
- package/dist/transformers/datetime-transformer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/controllers/import-transaction.controller.ts +9 -3
- package/src/controllers/locale.controller.ts +94 -0
- package/src/dtos/basic-filters.dto.ts +13 -1
- package/src/dtos/create-locale.dto.ts +17 -0
- package/src/dtos/create-menu-item-metadata.dto.ts +21 -13
- package/src/dtos/create-model-metadata.dto.ts +5 -1
- package/src/dtos/create-role-metadata.dto.ts +48 -45
- package/src/dtos/update-locale.dto.ts +23 -0
- package/src/dtos/update-menu-item-metadata.dto.ts +23 -16
- package/src/dtos/update-role-metadata.dto.ts +49 -47
- package/src/entities/common.entity.ts +11 -1
- package/src/entities/locale.entity.ts +14 -0
- package/src/entities/menu-item-metadata.entity.ts +14 -14
- package/src/entities/model-metadata.entity.ts +3 -0
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +2 -1
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +1 -0
- package/src/helpers/module-metadata-helper.service.ts +0 -1
- package/src/helpers/solid-registry.ts +11 -2
- package/src/index.ts +6 -3
- package/src/seeders/seed-data/email-templates/forgot-password.handlebars.html +134 -154
- package/src/seeders/seed-data/email-templates/on-force-password-change.handlebars.html +141 -195
- package/src/seeders/seed-data/email-templates/otp-on-login.handlebars.html +130 -144
- package/src/seeders/seed-data/email-templates/otp-on-register.handlebars.html +131 -145
- package/src/seeders/seed-data/solid-core-metadata.json +234 -0
- package/src/services/authentication.service.ts +8 -3
- package/src/services/crud-helper.service.ts +30 -12
- package/src/services/crud.service.ts +51 -35
- package/src/services/import-transaction.service.ts +313 -121
- package/src/services/locale.service.ts +37 -0
- package/src/services/mediaStorageProviders/file-storage-provider.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +2 -0
- package/src/services/pending_import_issues +3 -0
- package/src/services/selection-providers/locale-list-selection-provider.service.ts +58 -0
- package/src/services/setting.service.ts +4 -2
- package/src/services/view-metadata.service.ts +179 -14
- package/src/solid-core.module.ts +8 -0
- package/src/subscribers/model.subscriber.ts +24 -0
- package/src/transformers/datetime-transformer.ts +12 -0
|
@@ -167,6 +167,19 @@ class CRUDService {
|
|
|
167
167
|
if (!entity) {
|
|
168
168
|
throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
|
|
169
169
|
}
|
|
170
|
+
if (model.internationalisation) {
|
|
171
|
+
const childEntities = await this.repo.find({
|
|
172
|
+
where: { defaultEntityLocaleId: id }
|
|
173
|
+
});
|
|
174
|
+
if (childEntities.length > 0) {
|
|
175
|
+
if (model.enableSoftDelete === true) {
|
|
176
|
+
await this.repo.softRemove(childEntities);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
await this.repo.remove(childEntities);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
170
183
|
if (model.enableSoftDelete === true) {
|
|
171
184
|
await this.repo.softRemove(entity);
|
|
172
185
|
return this.repo.save(entity);
|
|
@@ -301,7 +314,7 @@ class CRUDService {
|
|
|
301
314
|
async find(basicFilterDto, solidRequestContext = {}) {
|
|
302
315
|
const alias = 'entity';
|
|
303
316
|
let { limit, offset, populateMedia, populateGroup, groupFilter } = basicFilterDto;
|
|
304
|
-
const { singularName } = await this.loadModel();
|
|
317
|
+
const { singularName, internationalisation, draftPublishWorkflow } = await this.loadModel();
|
|
305
318
|
if (solidRequestContext.activeUser) {
|
|
306
319
|
const hasPermission = this.crudHelperService.hasReadPermissionOnModel(solidRequestContext.activeUser, singularName);
|
|
307
320
|
if (!hasPermission) {
|
|
@@ -309,9 +322,9 @@ class CRUDService {
|
|
|
309
322
|
}
|
|
310
323
|
}
|
|
311
324
|
var qb = this.repo.createQueryBuilder(alias);
|
|
312
|
-
qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
|
|
325
|
+
qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow);
|
|
313
326
|
if (basicFilterDto.groupBy) {
|
|
314
|
-
const { groupMeta, groupRecords } = await this.handleGroupFind(qb, groupFilter, populateGroup, alias, populateMedia);
|
|
327
|
+
const { groupMeta, groupRecords } = await this.handleGroupFind(qb, groupFilter, populateGroup, alias, populateMedia, internationalisation, draftPublishWorkflow);
|
|
315
328
|
return {
|
|
316
329
|
groupMeta,
|
|
317
330
|
groupRecords,
|
|
@@ -332,14 +345,14 @@ class CRUDService {
|
|
|
332
345
|
}
|
|
333
346
|
return this.wrapFindResponse(offset, limit, count, entities);
|
|
334
347
|
}
|
|
335
|
-
async handleGroupFind(qb, groupFilter, populateGroup, alias, populateMedia) {
|
|
348
|
+
async handleGroupFind(qb, groupFilter, populateGroup, alias, populateMedia, internationalisation, draftPublishWorkflow) {
|
|
336
349
|
const groupByResult = await qb.getRawMany();
|
|
337
350
|
const groupMeta = [];
|
|
338
351
|
const groupRecords = [];
|
|
339
352
|
for (const group of groupByResult) {
|
|
340
353
|
if (populateGroup) {
|
|
341
354
|
let groupByQb = this.repo.createQueryBuilder(alias);
|
|
342
|
-
groupByQb = this.crudHelperService.buildFilterQuery(groupByQb, groupFilter, alias);
|
|
355
|
+
groupByQb = this.crudHelperService.buildFilterQuery(groupByQb, groupFilter, alias, internationalisation, draftPublishWorkflow);
|
|
343
356
|
groupByQb = this.crudHelperService.buildGroupByRecordsQuery(groupByQb, group, alias);
|
|
344
357
|
const [entities, count] = await groupByQb.getManyAndCount();
|
|
345
358
|
if (populateMedia && populateMedia.length > 0) {
|
|
@@ -484,7 +497,7 @@ class CRUDService {
|
|
|
484
497
|
module: true,
|
|
485
498
|
});
|
|
486
499
|
const createAndSavePromises = createDtos.map(async (createDto, index) => {
|
|
487
|
-
const files =
|
|
500
|
+
const files = [];
|
|
488
501
|
let hasMediaFields = false;
|
|
489
502
|
for (const field of model.fields) {
|
|
490
503
|
const fieldManager = this.fieldCrudManager(field, this.entityManager);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../src/services/crud.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../src/services/crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { ImportInstructionsResponseDto } from 'src/dtos/import-instructions.dto'
|
|
|
11
11
|
import { ImportTransaction } from '../entities/import-transaction.entity';
|
|
12
12
|
import { CsvService } from './csv.service';
|
|
13
13
|
import { ExcelService } from './excel.service';
|
|
14
|
+
import { SolidIntrospectService } from './solid-introspect.service';
|
|
14
15
|
interface ImportTemplateFileInfo {
|
|
15
16
|
stream: NodeJS.ReadableStream;
|
|
16
17
|
fileName: string;
|
|
@@ -33,7 +34,7 @@ export interface ImportableFieldInfo {
|
|
|
33
34
|
name: string;
|
|
34
35
|
displayName: string;
|
|
35
36
|
}
|
|
36
|
-
export interface
|
|
37
|
+
export interface ImportPaginatedReadResult {
|
|
37
38
|
headers: string[];
|
|
38
39
|
data: Record<string, any>[];
|
|
39
40
|
}
|
|
@@ -50,15 +51,27 @@ export declare class ImportTransactionService extends CRUDService<ImportTransact
|
|
|
50
51
|
readonly excelService: ExcelService;
|
|
51
52
|
readonly csvService: CsvService;
|
|
52
53
|
readonly httpService: HttpService;
|
|
53
|
-
|
|
54
|
+
readonly introspectService: SolidIntrospectService;
|
|
55
|
+
constructor(modelMetadataService: ModelMetadataService, moduleMetadataService: ModuleMetadataService, configService: ConfigService, fileService: FileService, discoveryService: DiscoveryService, crudHelperService: CrudHelperService, entityManager: EntityManager, repo: Repository<ImportTransaction>, moduleRef: ModuleRef, excelService: ExcelService, csvService: CsvService, httpService: HttpService, introspectService: SolidIntrospectService);
|
|
54
56
|
private readonly logger;
|
|
55
|
-
|
|
57
|
+
getImportTemplate(modelMetadataId: number, format?: ImportFormat): Promise<ImportTemplateFileInfo>;
|
|
58
|
+
getImportInstructions(modelMetadataId: number): Promise<ImportInstructionsResponseDto>;
|
|
56
59
|
getImportMappingInfo(importTransactionId: number): Promise<ImportMappingInfo>;
|
|
60
|
+
startImportSync(importTransactionId: number): Promise<Array<number>>;
|
|
61
|
+
startImportAsync(importTransactionId: number): Promise<void>;
|
|
62
|
+
private loadImportTransaction;
|
|
63
|
+
private fieldsAllowedForImport;
|
|
57
64
|
private getFileRecordsSample;
|
|
65
|
+
private getImportFileObject;
|
|
58
66
|
private getImportFileStream;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
private
|
|
67
|
+
private writeFileRecordsToDb;
|
|
68
|
+
private getModelService;
|
|
69
|
+
private convertPaginatedResultToDtos;
|
|
70
|
+
private convertImportedRecordToDto;
|
|
71
|
+
private populateDto;
|
|
72
|
+
private populateDtoForDate;
|
|
73
|
+
private populateDtoForRelations;
|
|
74
|
+
private getRelatedEntityIdsFromUserKeys;
|
|
62
75
|
}
|
|
63
76
|
export {};
|
|
64
77
|
//# sourceMappingURL=import-transaction.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-transaction.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"import-transaction.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,18 +24,20 @@ const crud_service_1 = require("./crud.service");
|
|
|
24
24
|
const file_service_1 = require("./file.service");
|
|
25
25
|
const model_metadata_service_1 = require("./model-metadata.service");
|
|
26
26
|
const module_metadata_service_1 = require("./module-metadata.service");
|
|
27
|
+
const strings_1 = require("@angular-devkit/core/src/utils/strings");
|
|
27
28
|
const axios_1 = require("@nestjs/axios");
|
|
28
29
|
const create_field_metadata_dto_1 = require("../dtos/create-field-metadata.dto");
|
|
29
30
|
const import_transaction_entity_1 = require("../entities/import-transaction.entity");
|
|
30
31
|
const csv_service_1 = require("./csv.service");
|
|
31
32
|
const excel_service_1 = require("./excel.service");
|
|
33
|
+
const solid_introspect_service_1 = require("./solid-introspect.service");
|
|
32
34
|
var ImportFormat;
|
|
33
35
|
(function (ImportFormat) {
|
|
34
36
|
ImportFormat["CSV"] = "csv";
|
|
35
37
|
ImportFormat["EXCEL"] = "excel";
|
|
36
38
|
})(ImportFormat || (exports.ImportFormat = ImportFormat = {}));
|
|
37
39
|
let ImportTransactionService = ImportTransactionService_1 = class ImportTransactionService extends crud_service_1.CRUDService {
|
|
38
|
-
constructor(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, moduleRef, excelService, csvService, httpService) {
|
|
40
|
+
constructor(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, moduleRef, excelService, csvService, httpService, introspectService) {
|
|
39
41
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
|
|
40
42
|
this.modelMetadataService = modelMetadataService;
|
|
41
43
|
this.moduleMetadataService = moduleMetadataService;
|
|
@@ -49,69 +51,41 @@ let ImportTransactionService = ImportTransactionService_1 = class ImportTransact
|
|
|
49
51
|
this.excelService = excelService;
|
|
50
52
|
this.csvService = csvService;
|
|
51
53
|
this.httpService = httpService;
|
|
54
|
+
this.introspectService = introspectService;
|
|
52
55
|
this.logger = new common_1.Logger(ImportTransactionService_1.name);
|
|
53
56
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
async getImportMappingInfo(importTransactionId) {
|
|
58
|
-
const importTransaction = await this.findOne(importTransactionId, {
|
|
59
|
-
populate: ['modelMetadata', 'modelMetadata.fields'],
|
|
60
|
-
populateMedia: ['fileLocation'],
|
|
57
|
+
async getImportTemplate(modelMetadataId, format = ImportFormat.CSV) {
|
|
58
|
+
const modelMetadata = await this.modelMetadataService.findOne(modelMetadataId, {
|
|
59
|
+
populate: ['fields'],
|
|
61
60
|
});
|
|
62
|
-
if (!
|
|
63
|
-
throw new Error(`
|
|
64
|
-
}
|
|
65
|
-
const importableFields = this.fieldsAllowedForImport(importTransaction.modelMetadata.fields).map(field => ({
|
|
66
|
-
name: field.name,
|
|
67
|
-
displayName: field.displayName,
|
|
68
|
-
}));
|
|
69
|
-
const importFileMediaObject = importTransaction['_media']['fileLocation'][0];
|
|
70
|
-
if (!importFileMediaObject) {
|
|
71
|
-
throw new Error(`Import file for transaction ID ${importTransactionId} not found.`);
|
|
61
|
+
if (!modelMetadata) {
|
|
62
|
+
throw new Error(`Model metadata with ID ${modelMetadataId} not found.`);
|
|
72
63
|
}
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
importableFields: importableFields,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
async getFileRecordsSample(importFileStream, mimeType) {
|
|
88
|
-
if (mimeType === 'text/csv') {
|
|
89
|
-
const generator = this.csvService.readCsvInPagesFromStream(importFileStream, { pageSize: 1 });
|
|
90
|
-
const firstRecord = await generator.next();
|
|
91
|
-
return firstRecord.value;
|
|
64
|
+
const headers = this.fieldsAllowedForImport(modelMetadata.fields)
|
|
65
|
+
.map(field => field.displayName);
|
|
66
|
+
if (format === ImportFormat.CSV) {
|
|
67
|
+
const stream = await this.csvService.createCsvStream(null, 0, headers);
|
|
68
|
+
const fileName = `${modelMetadata.singularName}-import-template.csv`;
|
|
69
|
+
const mimeType = 'text/csv';
|
|
70
|
+
return {
|
|
71
|
+
stream,
|
|
72
|
+
fileName,
|
|
73
|
+
mimeType,
|
|
74
|
+
};
|
|
92
75
|
}
|
|
93
|
-
else if (
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
|
|
76
|
+
else if (format === ImportFormat.EXCEL) {
|
|
77
|
+
const stream = await this.excelService.createExcelStream(null, 0, headers);
|
|
78
|
+
const fileName = `${modelMetadata.singularName}-import-template.xlsx`;
|
|
79
|
+
const mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
80
|
+
return {
|
|
81
|
+
stream,
|
|
82
|
+
fileName,
|
|
83
|
+
mimeType,
|
|
84
|
+
};
|
|
97
85
|
}
|
|
98
86
|
else {
|
|
99
|
-
throw new Error(`Unsupported
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
async getImportFileStream(importFileMediaObject) {
|
|
103
|
-
const fileUrl = importFileMediaObject['_full_url'];
|
|
104
|
-
const mimeType = importFileMediaObject['mimeType'];
|
|
105
|
-
if (!fileUrl) {
|
|
106
|
-
throw new Error(`File URL ${fileUrl} not found.`);
|
|
107
|
-
}
|
|
108
|
-
const fileUrlResponse = await this.httpService.axiosRef.get(fileUrl, {
|
|
109
|
-
responseType: 'stream',
|
|
110
|
-
});
|
|
111
|
-
if (!fileUrlResponse || !fileUrlResponse.data) {
|
|
112
|
-
throw new Error(`Failed to read file from URL: ${fileUrl}`);
|
|
87
|
+
throw new Error(`Unsupported import format: ${format}`);
|
|
113
88
|
}
|
|
114
|
-
return fileUrlResponse.data;
|
|
115
89
|
}
|
|
116
90
|
async getImportInstructions(modelMetadataId) {
|
|
117
91
|
const modelMetadata = await this.modelMetadataService.findOne(modelMetadataId, {
|
|
@@ -167,38 +141,46 @@ let ImportTransactionService = ImportTransactionService_1 = class ImportTransact
|
|
|
167
141
|
custom: customInstructions,
|
|
168
142
|
};
|
|
169
143
|
}
|
|
170
|
-
async
|
|
171
|
-
const
|
|
172
|
-
|
|
144
|
+
async getImportMappingInfo(importTransactionId) {
|
|
145
|
+
const importTransaction = await this.loadImportTransaction(importTransactionId);
|
|
146
|
+
const importableFields = this.fieldsAllowedForImport(importTransaction.modelMetadata.fields).map(field => ({
|
|
147
|
+
name: field.name,
|
|
148
|
+
displayName: field.displayName,
|
|
149
|
+
}));
|
|
150
|
+
const importFileMediaObject = this.getImportFileObject(importTransaction);
|
|
151
|
+
const importFileStream = await this.getImportFileStream(importFileMediaObject);
|
|
152
|
+
const sampleRecord = await this.getFileRecordsSample(importFileStream, importFileMediaObject.mimeType);
|
|
153
|
+
const wrappedRecords = sampleRecord.data.map((record) => {
|
|
154
|
+
return Object.entries(record).map(([key, value]) => ({
|
|
155
|
+
cellHeader: key,
|
|
156
|
+
cellValue: value,
|
|
157
|
+
defaultMappedFieldName: importableFields.find(field => field.displayName === key)?.name || '',
|
|
158
|
+
}));
|
|
159
|
+
}).flat();
|
|
160
|
+
return {
|
|
161
|
+
sampleImportedRecordInfo: wrappedRecords,
|
|
162
|
+
importableFields: importableFields,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
async startImportSync(importTransactionId) {
|
|
166
|
+
const importTransaction = await this.loadImportTransaction(importTransactionId);
|
|
167
|
+
const importFileMediaObject = this.getImportFileObject(importTransaction);
|
|
168
|
+
const importFileStream = await this.getImportFileStream(importFileMediaObject);
|
|
169
|
+
const ids = await this.writeFileRecordsToDb(importFileStream, importFileMediaObject.mimeType, JSON.parse(importTransaction.mapping), importTransaction.modelMetadata);
|
|
170
|
+
return ids;
|
|
171
|
+
}
|
|
172
|
+
startImportAsync(importTransactionId) {
|
|
173
|
+
throw new Error('Method not implemented.');
|
|
174
|
+
}
|
|
175
|
+
async loadImportTransaction(importTransactionId) {
|
|
176
|
+
const importTransaction = await this.findOne(importTransactionId, {
|
|
177
|
+
populate: ['modelMetadata', 'modelMetadata.fields'],
|
|
178
|
+
populateMedia: ['fileLocation'],
|
|
173
179
|
});
|
|
174
|
-
if (!
|
|
175
|
-
throw new Error(`
|
|
176
|
-
}
|
|
177
|
-
const headers = this.fieldsAllowedForImport(modelMetadata.fields)
|
|
178
|
-
.map(field => field.displayName);
|
|
179
|
-
if (format === ImportFormat.CSV) {
|
|
180
|
-
const stream = await this.csvService.createCsvStream(null, 0, headers);
|
|
181
|
-
const fileName = `${modelMetadata.singularName}-import-template.csv`;
|
|
182
|
-
const mimeType = 'text/csv';
|
|
183
|
-
return {
|
|
184
|
-
stream,
|
|
185
|
-
fileName,
|
|
186
|
-
mimeType,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
else if (format === ImportFormat.EXCEL) {
|
|
190
|
-
const stream = await this.excelService.createExcelStream(null, 0, headers);
|
|
191
|
-
const fileName = `${modelMetadata.singularName}-import-template.xlsx`;
|
|
192
|
-
const mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
|
193
|
-
return {
|
|
194
|
-
stream,
|
|
195
|
-
fileName,
|
|
196
|
-
mimeType,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
throw new Error(`Unsupported import format: ${format}`);
|
|
180
|
+
if (!importTransaction) {
|
|
181
|
+
throw new Error(`Import transaction with ID ${importTransactionId} not found.`);
|
|
201
182
|
}
|
|
183
|
+
return importTransaction;
|
|
202
184
|
}
|
|
203
185
|
fieldsAllowedForImport(fields) {
|
|
204
186
|
return fields.filter(field => field.type !== create_field_metadata_dto_1.SolidFieldType.mediaMultiple &&
|
|
@@ -209,6 +191,150 @@ let ImportTransactionService = ImportTransactionService_1 = class ImportTransact
|
|
|
209
191
|
field.type !== create_field_metadata_dto_1.SolidFieldType.uuid &&
|
|
210
192
|
field.isSystem !== true);
|
|
211
193
|
}
|
|
194
|
+
async getFileRecordsSample(importFileStream, mimeType) {
|
|
195
|
+
if (mimeType === 'text/csv') {
|
|
196
|
+
const generator = this.csvService.readCsvInPagesFromStream(importFileStream, { pageSize: 1 });
|
|
197
|
+
const firstRecord = await generator.next();
|
|
198
|
+
return firstRecord.value;
|
|
199
|
+
}
|
|
200
|
+
else if (mimeType === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
|
|
201
|
+
const generator = this.excelService.readExcelInPagesFromStream(importFileStream, { pageSize: 1 });
|
|
202
|
+
const firstRecord = await generator.next();
|
|
203
|
+
return firstRecord.value;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
throw new Error(`Unsupported file type: ${mimeType}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
getImportFileObject(importTransaction) {
|
|
210
|
+
const importFileMediaObject = importTransaction['_media']['fileLocation'][0];
|
|
211
|
+
if (!importFileMediaObject) {
|
|
212
|
+
throw new Error(`Import file for transaction ID ${importTransaction.id} not found.`);
|
|
213
|
+
}
|
|
214
|
+
return importFileMediaObject;
|
|
215
|
+
}
|
|
216
|
+
async getImportFileStream(importFileMediaObject) {
|
|
217
|
+
const fileUrl = importFileMediaObject['_full_url'];
|
|
218
|
+
const mimeType = importFileMediaObject['mimeType'];
|
|
219
|
+
if (!fileUrl) {
|
|
220
|
+
throw new Error(`File URL ${fileUrl} not found.`);
|
|
221
|
+
}
|
|
222
|
+
const fileUrlResponse = await this.httpService.axiosRef.get(fileUrl, {
|
|
223
|
+
responseType: 'stream',
|
|
224
|
+
});
|
|
225
|
+
if (!fileUrlResponse || !fileUrlResponse.data) {
|
|
226
|
+
throw new Error(`Failed to read file from URL: ${fileUrl}`);
|
|
227
|
+
}
|
|
228
|
+
return fileUrlResponse.data;
|
|
229
|
+
}
|
|
230
|
+
async writeFileRecordsToDb(importFileStream, mimeType, mapping, modelMetadataWithFields) {
|
|
231
|
+
const modelService = this.getModelService(modelMetadataWithFields.singularName);
|
|
232
|
+
if (mimeType === 'text/csv') {
|
|
233
|
+
for await (const page of this.csvService.readCsvInPagesFromStream(importFileStream)) {
|
|
234
|
+
const dtos = await this.convertPaginatedResultToDtos(page, modelMetadataWithFields, mapping);
|
|
235
|
+
const createdRecords = await modelService.insertMany(dtos, [], {});
|
|
236
|
+
return createdRecords.map(record => record.id);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if (mimeType === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
|
|
240
|
+
for await (const page of this.excelService.readExcelInPagesFromStream(importFileStream)) {
|
|
241
|
+
const dtos = await this.convertPaginatedResultToDtos(page, modelMetadataWithFields, mapping);
|
|
242
|
+
const createdRecords = await modelService.insertMany(dtos, [], {});
|
|
243
|
+
return createdRecords.map(record => record.id);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
throw new Error(`Unsupported file type: ${mimeType}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
getModelService(modelSingularName) {
|
|
251
|
+
const modelServiceWrapper = this.introspectService.getProvider(`${(0, strings_1.classify)(modelSingularName)}Service`);
|
|
252
|
+
const modelService = modelServiceWrapper.instance;
|
|
253
|
+
if (!modelService) {
|
|
254
|
+
throw new Error(`Model service for ${modelSingularName} not found.`);
|
|
255
|
+
}
|
|
256
|
+
return modelService;
|
|
257
|
+
}
|
|
258
|
+
async convertPaginatedResultToDtos(importPaginatedResult, modelMetadataWithFields, mapping) {
|
|
259
|
+
const dtos = [];
|
|
260
|
+
for (const record of importPaginatedResult.data) {
|
|
261
|
+
const dto = await this.convertImportedRecordToDto(record, mapping, modelMetadataWithFields);
|
|
262
|
+
dtos.push(dto);
|
|
263
|
+
}
|
|
264
|
+
return dtos;
|
|
265
|
+
}
|
|
266
|
+
async convertImportedRecordToDto(record, mapping, modelMetadataWithFields) {
|
|
267
|
+
const dtoRecord = {};
|
|
268
|
+
for (const key in record) {
|
|
269
|
+
const mappedField = mapping.find(m => m.header === key);
|
|
270
|
+
if (mappedField) {
|
|
271
|
+
const fieldMetadata = modelMetadataWithFields.fields.find(f => f.name === mappedField.fieldName);
|
|
272
|
+
if (fieldMetadata) {
|
|
273
|
+
await this.populateDto(dtoRecord, fieldMetadata, record, key);
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
this.logger.warn(`Field ${mappedField.fieldName} not found in model metadata ${modelMetadataWithFields.singularName}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return dtoRecord;
|
|
281
|
+
}
|
|
282
|
+
async populateDto(dtoRecord, fieldMetadata, record, key) {
|
|
283
|
+
const fieldType = fieldMetadata.type;
|
|
284
|
+
switch (fieldType) {
|
|
285
|
+
case create_field_metadata_dto_1.SolidFieldType.relation: {
|
|
286
|
+
return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
|
|
287
|
+
}
|
|
288
|
+
case create_field_metadata_dto_1.SolidFieldType.date: return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
|
|
289
|
+
case create_field_metadata_dto_1.SolidFieldType.datetime: return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
|
|
290
|
+
default:
|
|
291
|
+
dtoRecord[fieldMetadata.name] = record[key];
|
|
292
|
+
return dtoRecord;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
populateDtoForDate(record, key, fieldMetadata, dtoRecord) {
|
|
296
|
+
{
|
|
297
|
+
const dateValue = new Date(record[key]);
|
|
298
|
+
if (isNaN(dateValue.getTime())) {
|
|
299
|
+
throw new Error(`Invalid date value for field ${fieldMetadata.name}: ${record[key]}`);
|
|
300
|
+
}
|
|
301
|
+
dtoRecord[fieldMetadata.name] = dateValue;
|
|
302
|
+
return dtoRecord;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
async populateDtoForRelations(fieldMetadata, record, key, dtoRecord) {
|
|
306
|
+
if (!fieldMetadata.relationCoModelSingularName) {
|
|
307
|
+
throw new Error(`Relation coModelSingularName is not defined for relation field ${fieldMetadata.name}`);
|
|
308
|
+
}
|
|
309
|
+
const relatedRecordsIds = await this.getRelatedEntityIdsFromUserKeys(fieldMetadata, record, key);
|
|
310
|
+
if (fieldMetadata.relationType === create_field_metadata_dto_1.RelationType.manyTomany || fieldMetadata.relationType === create_field_metadata_dto_1.RelationType.oneToMany) {
|
|
311
|
+
dtoRecord[`${fieldMetadata.name}Ids`] = relatedRecordsIds;
|
|
312
|
+
dtoRecord[`${fieldMetadata.name}Command`] = create_field_metadata_dto_1.RelationFieldsCommand.set;
|
|
313
|
+
}
|
|
314
|
+
else if (fieldMetadata.relationType === create_field_metadata_dto_1.RelationType.manyToOne) {
|
|
315
|
+
dtoRecord[`${fieldMetadata.name}Id`] = relatedRecordsIds.pop();
|
|
316
|
+
}
|
|
317
|
+
return dtoRecord;
|
|
318
|
+
}
|
|
319
|
+
async getRelatedEntityIdsFromUserKeys(fieldMetadata, record, key) {
|
|
320
|
+
const coModelService = this.getModelService(fieldMetadata.relationCoModelSingularName);
|
|
321
|
+
const coModelWithUserKeyField = await this.modelMetadataService.findOneBySingularName(fieldMetadata.relationCoModelSingularName, ['userKeyField']);
|
|
322
|
+
const coModelUserKeyFieldName = coModelWithUserKeyField?.userKeyField?.name || 'id';
|
|
323
|
+
const relationUserKeys = record[key] ? String(record[key]).split(',').map((userKey) => userKey.trim()) : [];
|
|
324
|
+
const relationFilterDto = {
|
|
325
|
+
filters: {
|
|
326
|
+
[coModelUserKeyFieldName]: {
|
|
327
|
+
$in: relationUserKeys,
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
const relatedRecordsResult = await coModelService.find(relationFilterDto);
|
|
332
|
+
if (!relatedRecordsResult || !relatedRecordsResult.records || relatedRecordsResult.records.length === 0 || relatedRecordsResult.records.length !== relationUserKeys.length) {
|
|
333
|
+
throw new Error(`Missing related records found for userKeys: ${relationUserKeys.join(', ')} in model ${fieldMetadata.relationCoModelSingularName}`);
|
|
334
|
+
}
|
|
335
|
+
const relatedRecordsIds = relatedRecordsResult.records.map(record => record.id);
|
|
336
|
+
return relatedRecordsIds;
|
|
337
|
+
}
|
|
212
338
|
};
|
|
213
339
|
exports.ImportTransactionService = ImportTransactionService;
|
|
214
340
|
exports.ImportTransactionService = ImportTransactionService = ImportTransactionService_1 = __decorate([
|
|
@@ -226,6 +352,7 @@ exports.ImportTransactionService = ImportTransactionService = ImportTransactionS
|
|
|
226
352
|
core_1.ModuleRef,
|
|
227
353
|
excel_service_1.ExcelService,
|
|
228
354
|
csv_service_1.CsvService,
|
|
229
|
-
axios_1.HttpService
|
|
355
|
+
axios_1.HttpService,
|
|
356
|
+
solid_introspect_service_1.SolidIntrospectService])
|
|
230
357
|
], ImportTransactionService);
|
|
231
358
|
//# sourceMappingURL=import-transaction.service.js.map
|