@rafikidota/cuba-ofertas-scraping 0.42.0 → 0.43.0

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.
Files changed (30) hide show
  1. package/dist/common/constant/task.d.ts +38 -1
  2. package/dist/common/constant/task.js +3 -3
  3. package/dist/common/constant/task.js.map +1 -1
  4. package/dist/modules/index.d.ts +2 -0
  5. package/dist/modules/index.js +2 -0
  6. package/dist/modules/index.js.map +1 -1
  7. package/dist/modules/repository/env/repository.env.config.d.ts +7 -0
  8. package/dist/modules/repository/env/repository.env.config.js +47 -0
  9. package/dist/modules/repository/env/repository.env.config.js.map +1 -0
  10. package/dist/modules/repository/env/repository.env.validation.d.ts +2 -0
  11. package/dist/modules/repository/env/repository.env.validation.js +45 -0
  12. package/dist/modules/repository/env/repository.env.validation.js.map +1 -0
  13. package/dist/modules/repository/services/category.repository.service.d.ts +4 -1
  14. package/dist/modules/repository/services/category.repository.service.js +35 -24
  15. package/dist/modules/repository/services/category.repository.service.js.map +1 -1
  16. package/dist/modules/repository/services/image.repository.service.d.ts +4 -1
  17. package/dist/modules/repository/services/image.repository.service.js +35 -24
  18. package/dist/modules/repository/services/image.repository.service.js.map +1 -1
  19. package/dist/modules/repository/services/product.repository.service.d.ts +4 -1
  20. package/dist/modules/repository/services/product.repository.service.js +35 -24
  21. package/dist/modules/repository/services/product.repository.service.js.map +1 -1
  22. package/dist/modules/repository/services/provider.repository.service.d.ts +4 -1
  23. package/dist/modules/repository/services/provider.repository.service.js +35 -24
  24. package/dist/modules/repository/services/provider.repository.service.js.map +1 -1
  25. package/dist/modules/repository/services/province.repository.service.d.ts +4 -1
  26. package/dist/modules/repository/services/province.repository.service.js +35 -24
  27. package/dist/modules/repository/services/province.repository.service.js.map +1 -1
  28. package/dist/modules/storage/storage.service.js +1 -1
  29. package/dist/modules/storage/storage.service.js.map +1 -1
  30. package/package.json +1 -1
@@ -2,4 +2,41 @@ import { CronOptions } from '@nestjs/schedule';
2
2
  export declare const FirstTaskOptions: CronOptions;
3
3
  export declare const SecondTaskOptions: CronOptions;
4
4
  export declare const ThirdTaskOptions: CronOptions;
5
- export declare const TaskOptions: Record<string, CronOptions>;
5
+ export declare const TaskOptions: {
6
+ readonly FIRST: {
7
+ name?: string;
8
+ timeZone?: unknown;
9
+ utcOffset?: unknown;
10
+ unrefTimeout?: boolean;
11
+ waitForCompletion?: boolean;
12
+ disabled?: boolean;
13
+ threshold?: number;
14
+ } & {
15
+ timeZone?: string;
16
+ utcOffset?: never;
17
+ };
18
+ readonly SECOND: {
19
+ name?: string;
20
+ timeZone?: unknown;
21
+ utcOffset?: unknown;
22
+ unrefTimeout?: boolean;
23
+ waitForCompletion?: boolean;
24
+ disabled?: boolean;
25
+ threshold?: number;
26
+ } & {
27
+ timeZone?: string;
28
+ utcOffset?: never;
29
+ };
30
+ readonly THIRD: {
31
+ name?: string;
32
+ timeZone?: unknown;
33
+ utcOffset?: unknown;
34
+ unrefTimeout?: boolean;
35
+ waitForCompletion?: boolean;
36
+ disabled?: boolean;
37
+ threshold?: number;
38
+ } & {
39
+ timeZone?: string;
40
+ utcOffset?: never;
41
+ };
42
+ };
@@ -17,8 +17,8 @@ exports.ThirdTaskOptions = {
17
17
  timeZone: 'America/New_York',
18
18
  };
19
19
  exports.TaskOptions = {
20
- first: exports.FirstTaskOptions,
21
- second: exports.SecondTaskOptions,
22
- third: exports.ThirdTaskOptions,
20
+ FIRST: exports.FirstTaskOptions,
21
+ SECOND: exports.SecondTaskOptions,
22
+ THIRD: exports.ThirdTaskOptions,
23
23
  };
24
24
  //# sourceMappingURL=task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/common/constant/task.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,gBAAgB;IACtB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,iBAAiB,GAAgB;IAC5C,IAAI,EAAE,iBAAiB;IACvB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,gBAAgB;IACtB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,WAAW,GAAgC;IACtD,KAAK,EAAE,wBAAgB;IACvB,MAAM,EAAE,yBAAiB;IACzB,KAAK,EAAE,wBAAgB;CACxB,CAAC"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/common/constant/task.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,gBAAgB;IACtB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,iBAAiB,GAAgB;IAC5C,IAAI,EAAE,iBAAiB;IACvB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,gBAAgB;IACtB,iBAAiB,EAAE,IAAI;IACvB,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEW,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,wBAAgB;IACvB,MAAM,EAAE,yBAAiB;IACzB,KAAK,EAAE,wBAAgB;CACuB,CAAC"}
@@ -29,6 +29,8 @@ export * from './rabbitmq/rabbitmq.module';
29
29
  export * from './rabbitmq/rabbitmq.service';
30
30
  export * from './repository/repository.module';
31
31
  export * from './repository/repository.service';
32
+ export * from './repository/env/repository.env.config';
33
+ export * from './repository/env/repository.env.validation';
32
34
  export * from './repository/services/category.repository.service';
33
35
  export * from './repository/services/image.repository.service';
34
36
  export * from './repository/services/product.repository.service';
@@ -45,6 +45,8 @@ __exportStar(require("./rabbitmq/rabbitmq.module"), exports);
45
45
  __exportStar(require("./rabbitmq/rabbitmq.service"), exports);
46
46
  __exportStar(require("./repository/repository.module"), exports);
47
47
  __exportStar(require("./repository/repository.service"), exports);
48
+ __exportStar(require("./repository/env/repository.env.config"), exports);
49
+ __exportStar(require("./repository/env/repository.env.validation"), exports);
48
50
  __exportStar(require("./repository/services/category.repository.service"), exports);
49
51
  __exportStar(require("./repository/services/image.repository.service"), exports);
50
52
  __exportStar(require("./repository/services/product.repository.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,8EAA4D;AAC5D,sFAAoE;AACpE,oFAAkE;AAClE,8EAA4D;AAE5D,iEAA+C;AAC/C,kEAAgD;AAEhD,iEAA+C;AAC/C,qEAAmD;AACnD,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,6EAA2D;AAC3D,8EAA4D;AAE5D,yDAAuC;AAEvC,uDAAqC;AACrC,wDAAsC;AACtC,+DAA6C;AAC7C,mEAAiD;AAEjD,+DAA6C;AAC7C,gEAA8C;AAE9C,+DAA6C;AAC7C,gEAA8C;AAE9C,qEAAmD;AACnD,yEAAuD;AACvD,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAE5C,iEAA+C;AAC/C,kEAAgD;AAChD,oFAAkE;AAClE,iFAA+D;AAC/D,mFAAiE;AACjE,oFAAkE;AAClE,oFAAkE;AAClE,sEAAoD;AAEpD,2DAAyC;AACzC,4DAA0C;AAE1C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,6DAA2C;AAC3C,8DAA4C;AAE5C,uEAAqD;AACrD,2EAAyD;AACzD,+DAA6C;AAC7C,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,8EAA4D;AAC5D,sFAAoE;AACpE,oFAAkE;AAClE,8EAA4D;AAE5D,iEAA+C;AAC/C,kEAAgD;AAEhD,iEAA+C;AAC/C,qEAAmD;AACnD,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,6EAA2D;AAC3D,8EAA4D;AAE5D,yDAAuC;AAEvC,uDAAqC;AACrC,wDAAsC;AACtC,+DAA6C;AAC7C,mEAAiD;AAEjD,+DAA6C;AAC7C,gEAA8C;AAE9C,+DAA6C;AAC7C,gEAA8C;AAE9C,qEAAmD;AACnD,yEAAuD;AACvD,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAE5C,iEAA+C;AAC/C,kEAAgD;AAChD,yEAAuD;AACvD,6EAA2D;AAC3D,oFAAkE;AAClE,iFAA+D;AAC/D,mFAAiE;AACjE,oFAAkE;AAClE,oFAAkE;AAClE,sEAAoD;AAEpD,2DAAyC;AACzC,4DAA0C;AAE1C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,6DAA2C;AAC3C,8DAA4C;AAE5C,uEAAqD;AACrD,2EAAyD;AACzD,+DAA6C;AAC7C,gEAA8C"}
@@ -0,0 +1,7 @@
1
+ export declare const RepositoryEnvConfig: () => {
2
+ REPOSITORY_SAVE_CATEGORY_LOG: any;
3
+ REPOSITORY_SAVE_IMAGE_LOG: any;
4
+ REPOSITORY_SAVE_PRODUCT_LOG: any;
5
+ REPOSITORY_SAVE_PROVIDER_LOG: any;
6
+ REPOSITORY_SAVE_PROVINCE_LOG: any;
7
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RepositoryEnvConfig = void 0;
37
+ const dotenv = __importStar(require("dotenv"));
38
+ dotenv.config();
39
+ const RepositoryEnvConfig = () => ({
40
+ REPOSITORY_SAVE_CATEGORY_LOG: JSON.parse(process.env.REPOSITORY_SAVE_CATEGORY_LOG),
41
+ REPOSITORY_SAVE_IMAGE_LOG: JSON.parse(process.env.REPOSITORY_SAVE_IMAGE_LOG),
42
+ REPOSITORY_SAVE_PRODUCT_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PRODUCT_LOG),
43
+ REPOSITORY_SAVE_PROVIDER_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PROVIDER_LOG),
44
+ REPOSITORY_SAVE_PROVINCE_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PROVINCE_LOG),
45
+ });
46
+ exports.RepositoryEnvConfig = RepositoryEnvConfig;
47
+ //# sourceMappingURL=repository.env.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.env.config.js","sourceRoot":"","sources":["../../../../src/modules/repository/env/repository.env.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAET,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACxC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC5E,2BAA2B,EAAE,IAAI,CAAC,KAAK,CACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CACxC;IACD,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;CACF,CAAC,CAAC;AAdU,QAAA,mBAAmB,uBAc7B"}
@@ -0,0 +1,2 @@
1
+ import * as joi from 'joi';
2
+ export declare const RepositoryConfigValidationSchema: joi.ObjectSchema<any>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RepositoryConfigValidationSchema = void 0;
37
+ const joi = __importStar(require("joi"));
38
+ exports.RepositoryConfigValidationSchema = joi.object({
39
+ REPOSITORY_SAVE_CATEGORY_LOG: joi.boolean().default(true),
40
+ REPOSITORY_SAVE_IMAGE_LOG: joi.boolean().default(true),
41
+ REPOSITORY_SAVE_PRODUCT_LOG: joi.boolean().default(true),
42
+ REPOSITORY_SAVE_PROVIDER_LOG: joi.boolean().default(true),
43
+ REPOSITORY_SAVE_PROVINCE_LOG: joi.boolean().default(true),
44
+ });
45
+ //# sourceMappingURL=repository.env.validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.env.validation.js","sourceRoot":"","sources":["../../../../src/modules/repository/env/repository.env.validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAEd,QAAA,gCAAgC,GAAG,GAAG,CAAC,MAAM,CAAC;IACzD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzD,yBAAyB,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,2BAA2B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1D,CAAC,CAAC"}
@@ -1,10 +1,13 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { Repository } from 'typeorm';
2
3
  import { Category } from '../../../common/class/category';
3
4
  import { CategoryEntity } from '../entities/category.entity';
4
5
  export declare class CategoryRepositoryService {
5
6
  private readonly repository;
7
+ private readonly config;
6
8
  private logger;
7
- constructor(repository: Repository<CategoryEntity>);
9
+ private readonly logging;
10
+ constructor(repository: Repository<CategoryEntity>, config: ConfigService);
8
11
  find(): Promise<Category[]>;
9
12
  count(): Promise<number>;
10
13
  save(categories: Category[]): Promise<void>;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CategoryRepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
17
18
  const event_emitter_1 = require("@nestjs/event-emitter");
18
19
  const typeorm_1 = require("@nestjs/typeorm");
19
20
  const typeorm_2 = require("typeorm");
@@ -23,9 +24,11 @@ const category_1 = require("../../../common/class/category");
23
24
  const category_entity_1 = require("../entities/category.entity");
24
25
  const event_enum_1 = require("../../../common/enum/event.enum");
25
26
  let CategoryRepositoryService = class CategoryRepositoryService {
26
- constructor(repository) {
27
+ constructor(repository, config) {
27
28
  this.repository = repository;
29
+ this.config = config;
28
30
  this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
31
+ this.logging = this.config.get('REPOSITORY_SAVE_CATEGORY_LOG');
29
32
  }
30
33
  async find() {
31
34
  const entities = await this.repository.find();
@@ -35,31 +38,38 @@ let CategoryRepositoryService = class CategoryRepositoryService {
35
38
  return this.repository.count();
36
39
  }
37
40
  async save(categories) {
38
- const sizes = { previous: 0, current: 0 };
39
- const multiples = { previous: 0, current: 0 };
40
- sizes.previous = await this.count();
41
- const entities = [];
42
- for (const category of categories) {
43
- const data = category.getData();
44
- const { id, name } = data;
45
- if (id) {
46
- const exists = await this.repository.existsBy({ id });
47
- if (!exists) {
48
- const entity = this.repository.create(data);
49
- entities.push(entity);
50
- this.logger.debug(`✅ ${name}`);
41
+ try {
42
+ const sizes = { previous: await this.repository.count(), current: 0 };
43
+ const datas = categories.map((c) => c.getData()).filter((x) => x.id);
44
+ const identificators = datas.map((x) => x.id);
45
+ const matches = await this.repository
46
+ .find({
47
+ select: ['id'],
48
+ where: { id: (0, typeorm_2.In)(identificators) },
49
+ })
50
+ .then((res) => new Set(res.map((x) => x.id)));
51
+ const entities = datas
52
+ .filter((x) => !matches.has(x.id))
53
+ .map((x) => this.repository.create(x));
54
+ if (entities.length > 0) {
55
+ await this.repository.manager.transaction(async (manager) => {
56
+ await manager.save(entities);
57
+ });
58
+ if (this.logging) {
59
+ entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
51
60
  }
52
61
  }
62
+ sizes.current = sizes.previous + entities.length;
63
+ if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
64
+ const { current: total } = sizes;
65
+ this.logger.verbose(`✅ ${total} categories saved successfully`);
66
+ }
53
67
  }
54
- if (entities.length > 0) {
55
- await this.repository.save(entities);
56
- }
57
- sizes.current = await this.repository.count();
58
- multiples.previous = Math.floor(sizes.previous / 10);
59
- multiples.current = Math.floor(sizes.current / 10);
60
- if (multiples.current > multiples.previous) {
61
- const message = `✅ ${sizes.current} categories has been saved successfully`;
62
- this.logger.verbose(message);
68
+ catch (error) {
69
+ const { message, stack } = error;
70
+ this.logger.error('🔥 Failed to save categories');
71
+ this.logger.error(message);
72
+ this.logger.error(stack);
63
73
  }
64
74
  }
65
75
  async reset() {
@@ -76,6 +86,7 @@ __decorate([
76
86
  exports.CategoryRepositoryService = CategoryRepositoryService = __decorate([
77
87
  (0, common_1.Injectable)(),
78
88
  __param(0, (0, typeorm_1.InjectRepository)(category_entity_1.CategoryEntity)),
79
- __metadata("design:paramtypes", [typeorm_2.Repository])
89
+ __metadata("design:paramtypes", [typeorm_2.Repository,
90
+ config_1.ConfigService])
80
91
  ], CategoryRepositoryService);
81
92
  //# sourceMappingURL=category.repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"category.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/category.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,qCAAqC;AAErC,8DAA0D;AAC1D,0DAAuD;AACvD,6DAA0D;AAC1D,iEAA6D;AAC7D,gEAAgE;AAGzD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAGpC,YAEE,UAAuD;QAAtC,eAAU,GAAV,UAAU,CAA4B;QAJjD,WAAM,GAAG,IAAI,eAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC;IAKjD,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAC,UAAsB;QAC/B,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAE1B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC9C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACrD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAEnD,IAAI,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,OAAO,yCAAyC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AAxDY,8DAAyB;AAkB9B;IADL,IAAA,uBAAO,EAAC,0BAAa,CAAC,eAAe,CAAC;;;;qDAkCtC;oCAnDU,yBAAyB;IADrC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,EAAC,gCAAc,CAAC,CAAA;qCACJ,oBAAU;GAL9B,yBAAyB,CAwDrC"}
1
+ {"version":3,"file":"category.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/category.repository.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { Repository } from 'typeorm';
2
3
  import { Image } from '../../../common/class/image';
3
4
  import { ImageEntity } from '../entities/image.entity';
4
5
  export declare class ImageRepositoryService {
5
6
  private readonly repository;
7
+ private readonly config;
6
8
  private logger;
7
- constructor(repository: Repository<ImageEntity>);
9
+ private readonly logging;
10
+ constructor(repository: Repository<ImageEntity>, config: ConfigService);
8
11
  find(): Promise<Image[]>;
9
12
  count(): Promise<number>;
10
13
  save(images: Image[]): Promise<void>;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ImageRepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
17
18
  const event_emitter_1 = require("@nestjs/event-emitter");
18
19
  const typeorm_1 = require("@nestjs/typeorm");
19
20
  const typeorm_2 = require("typeorm");
@@ -23,9 +24,11 @@ const image_1 = require("../../../common/class/image");
23
24
  const image_entity_1 = require("../entities/image.entity");
24
25
  const event_enum_1 = require("../../../common/enum/event.enum");
25
26
  let ImageRepositoryService = class ImageRepositoryService {
26
- constructor(repository) {
27
+ constructor(repository, config) {
27
28
  this.repository = repository;
29
+ this.config = config;
28
30
  this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
31
+ this.logging = this.config.get('REPOSITORY_SAVE_IMAGE_LOG');
29
32
  }
30
33
  async find() {
31
34
  const entities = await this.repository.find();
@@ -35,31 +38,38 @@ let ImageRepositoryService = class ImageRepositoryService {
35
38
  return this.repository.count();
36
39
  }
37
40
  async save(images) {
38
- const sizes = { previous: 0, current: 0 };
39
- const multiples = { previous: 0, current: 0 };
40
- sizes.previous = await this.count();
41
- const entities = [];
42
- for (const image of images) {
43
- const data = image.getData();
44
- const { id, name } = data;
45
- if (id) {
46
- const exists = await this.repository.existsBy({ id });
47
- if (!exists) {
48
- const entity = this.repository.create(data);
49
- entities.push(entity);
50
- this.logger.debug(`✅ ${name}`);
41
+ try {
42
+ const sizes = { previous: await this.repository.count(), current: 0 };
43
+ const datas = images.map((c) => c.getData()).filter((x) => x.id);
44
+ const identificators = datas.map((x) => x.id);
45
+ const matches = await this.repository
46
+ .find({
47
+ select: ['id'],
48
+ where: { id: (0, typeorm_2.In)(identificators) },
49
+ })
50
+ .then((res) => new Set(res.map((x) => x.id)));
51
+ const entities = datas
52
+ .filter((x) => !matches.has(x.id))
53
+ .map((x) => this.repository.create(x));
54
+ if (entities.length > 0) {
55
+ await this.repository.manager.transaction(async (manager) => {
56
+ await manager.save(entities);
57
+ });
58
+ if (this.logging) {
59
+ entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
51
60
  }
52
61
  }
62
+ sizes.current = sizes.previous + entities.length;
63
+ if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
64
+ const { current: total } = sizes;
65
+ this.logger.verbose(`✅ ${total} images saved successfully`);
66
+ }
53
67
  }
54
- if (entities.length > 0) {
55
- await this.repository.save(entities);
56
- }
57
- sizes.current = await this.repository.count();
58
- multiples.previous = Math.floor(sizes.previous / 10);
59
- multiples.current = Math.floor(sizes.current / 10);
60
- if (multiples.current > multiples.previous) {
61
- const message = `✅ ${sizes.current} images has been saved successfully`;
62
- this.logger.verbose(message);
68
+ catch (error) {
69
+ const { message, stack } = error;
70
+ this.logger.error('🔥 Failed to save images');
71
+ this.logger.error(message);
72
+ this.logger.error(stack);
63
73
  }
64
74
  }
65
75
  async reset() {
@@ -76,6 +86,7 @@ __decorate([
76
86
  exports.ImageRepositoryService = ImageRepositoryService = __decorate([
77
87
  (0, common_1.Injectable)(),
78
88
  __param(0, (0, typeorm_1.InjectRepository)(image_entity_1.ImageEntity)),
79
- __metadata("design:paramtypes", [typeorm_2.Repository])
89
+ __metadata("design:paramtypes", [typeorm_2.Repository,
90
+ config_1.ConfigService])
80
91
  ], ImageRepositoryService);
81
92
  //# sourceMappingURL=image.repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/image.repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/image.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,yDAAgD;AAChD,6CAAmD;AACnD,qCAAyC;AAEzC,8DAA0D;AAC1D,0DAAuD;AACvD,uDAAoD;AACpD,2DAAuD;AACvD,gEAAgE;AAGzD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,YAEE,UAAoD,EACnC,MAAqB;QADrB,eAAU,GAAV,UAAU,CAAyB;QACnC,WAAM,GAAN,MAAM,CAAe;QANhC,WAAM,GAAG,IAAI,eAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC;QAQlD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAEtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU;iBAClC,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,cAAc,CAAC,EAAE;aAClC,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,QAAQ,GAAG,KAAK;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1D,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAED,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;gBACrE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,4BAA4B,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAc,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AAlEY,wDAAsB;AAsB3B;IADL,IAAA,uBAAO,EAAC,0BAAa,CAAC,WAAW,CAAC;;;;kDAwClC;iCA7DU,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,0BAAgB,EAAC,0BAAW,CAAC,CAAA;qCACD,oBAAU;QACd,sBAAa;GAP7B,sBAAsB,CAkElC"}
@@ -1,10 +1,13 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { Repository } from 'typeorm';
2
3
  import { Product } from '../../../common/class/product';
3
4
  import { ProductEntity } from '../entities/product.entity';
4
5
  export declare class ProductRepositoryService {
5
6
  private readonly repository;
7
+ private readonly config;
6
8
  private logger;
7
- constructor(repository: Repository<ProductEntity>);
9
+ private readonly logging;
10
+ constructor(repository: Repository<ProductEntity>, config: ConfigService);
8
11
  find(): Promise<Product[]>;
9
12
  count(): Promise<number>;
10
13
  save(products: Product[]): Promise<void>;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ProductRepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
17
18
  const event_emitter_1 = require("@nestjs/event-emitter");
18
19
  const typeorm_1 = require("@nestjs/typeorm");
19
20
  const typeorm_2 = require("typeorm");
@@ -23,9 +24,11 @@ const product_1 = require("../../../common/class/product");
23
24
  const product_entity_1 = require("../entities/product.entity");
24
25
  const event_enum_1 = require("../../../common/enum/event.enum");
25
26
  let ProductRepositoryService = class ProductRepositoryService {
26
- constructor(repository) {
27
+ constructor(repository, config) {
27
28
  this.repository = repository;
29
+ this.config = config;
28
30
  this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
31
+ this.logging = this.config.get('REPOSITORY_SAVE_PRODUCT_LOG');
29
32
  }
30
33
  async find() {
31
34
  const entities = await this.repository.find();
@@ -35,31 +38,38 @@ let ProductRepositoryService = class ProductRepositoryService {
35
38
  return this.repository.count();
36
39
  }
37
40
  async save(products) {
38
- const sizes = { previous: 0, current: 0 };
39
- const multiples = { previous: 0, current: 0 };
40
- sizes.previous = await this.count();
41
- const entities = [];
42
- for (const product of products) {
43
- const data = product.getData();
44
- const { id, url } = data;
45
- if (id) {
46
- const exists = await this.repository.existsBy({ id });
47
- if (!exists) {
48
- const entity = this.repository.create(data);
49
- entities.push(entity);
50
- this.logger.debug(`✅ ${url}`);
41
+ try {
42
+ const sizes = { previous: await this.repository.count(), current: 0 };
43
+ const datas = products.map((c) => c.getData()).filter((x) => x.id);
44
+ const identificators = datas.map((x) => x.id);
45
+ const matches = await this.repository
46
+ .find({
47
+ select: ['id'],
48
+ where: { id: (0, typeorm_2.In)(identificators) },
49
+ })
50
+ .then((res) => new Set(res.map((x) => x.id)));
51
+ const entities = datas
52
+ .filter((x) => !matches.has(x.id))
53
+ .map((x) => this.repository.create(x));
54
+ if (entities.length > 0) {
55
+ await this.repository.manager.transaction(async (manager) => {
56
+ await manager.save(entities);
57
+ });
58
+ if (this.logging) {
59
+ entities.forEach((x) => this.logger.debug(`✅ ${x.url}`));
51
60
  }
52
61
  }
62
+ sizes.current = sizes.previous + entities.length;
63
+ if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
64
+ const { current: total } = sizes;
65
+ this.logger.verbose(`✅ ${total} products saved successfully`);
66
+ }
53
67
  }
54
- if (entities.length > 0) {
55
- await this.repository.save(entities);
56
- }
57
- sizes.current = await this.repository.count();
58
- multiples.previous = Math.floor(sizes.previous / 10);
59
- multiples.current = Math.floor(sizes.current / 10);
60
- if (multiples.current > multiples.previous) {
61
- const message = `✅ ${sizes.current} products has been saved successfully`;
62
- this.logger.verbose(message);
68
+ catch (error) {
69
+ const { message, stack } = error;
70
+ this.logger.error('🔥 Failed to save products');
71
+ this.logger.error(message);
72
+ this.logger.error(stack);
63
73
  }
64
74
  }
65
75
  async reset() {
@@ -76,6 +86,7 @@ __decorate([
76
86
  exports.ProductRepositoryService = ProductRepositoryService = __decorate([
77
87
  (0, common_1.Injectable)(),
78
88
  __param(0, (0, typeorm_1.InjectRepository)(product_entity_1.ProductEntity)),
79
- __metadata("design:paramtypes", [typeorm_2.Repository])
89
+ __metadata("design:paramtypes", [typeorm_2.Repository,
90
+ config_1.ConfigService])
80
91
  ], ProductRepositoryService);
81
92
  //# sourceMappingURL=product.repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/product.repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/product.repository.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { Repository } from 'typeorm';
2
3
  import { Provider } from '../../../common/class/provider';
3
4
  import { ProviderEntity } from '../entities/provider.entity';
4
5
  export declare class ProviderRepositoryService {
5
6
  private readonly repository;
7
+ private readonly config;
6
8
  private logger;
7
- constructor(repository: Repository<ProviderEntity>);
9
+ private readonly logging;
10
+ constructor(repository: Repository<ProviderEntity>, config: ConfigService);
8
11
  find(): Promise<Provider[]>;
9
12
  count(): Promise<number>;
10
13
  save(providers: Provider[]): Promise<void>;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ProviderRepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
17
18
  const event_emitter_1 = require("@nestjs/event-emitter");
18
19
  const typeorm_1 = require("@nestjs/typeorm");
19
20
  const typeorm_2 = require("typeorm");
@@ -23,9 +24,11 @@ const provider_1 = require("../../../common/class/provider");
23
24
  const provider_entity_1 = require("../entities/provider.entity");
24
25
  const event_enum_1 = require("../../../common/enum/event.enum");
25
26
  let ProviderRepositoryService = class ProviderRepositoryService {
26
- constructor(repository) {
27
+ constructor(repository, config) {
27
28
  this.repository = repository;
29
+ this.config = config;
28
30
  this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
31
+ this.logging = this.config.get('REPOSITORY_SAVE_PROVIDER_LOG');
29
32
  }
30
33
  async find() {
31
34
  const entities = await this.repository.find();
@@ -35,31 +38,38 @@ let ProviderRepositoryService = class ProviderRepositoryService {
35
38
  return this.repository.count();
36
39
  }
37
40
  async save(providers) {
38
- const sizes = { previous: 0, current: 0 };
39
- const multiples = { previous: 0, current: 0 };
40
- sizes.previous = await this.count();
41
- const entities = [];
42
- for (const provider of providers) {
43
- const data = provider.getData();
44
- const { id, name } = data;
45
- if (id) {
46
- const exists = await this.repository.existsBy({ id });
47
- if (!exists) {
48
- const entity = this.repository.create(data);
49
- entities.push(entity);
50
- this.logger.debug(`✅ ${name}`);
41
+ try {
42
+ const sizes = { previous: await this.repository.count(), current: 0 };
43
+ const datas = providers.map((c) => c.getData()).filter((x) => x.id);
44
+ const identificators = datas.map((x) => x.id);
45
+ const matches = await this.repository
46
+ .find({
47
+ select: ['id'],
48
+ where: { id: (0, typeorm_2.In)(identificators) },
49
+ })
50
+ .then((res) => new Set(res.map((x) => x.id)));
51
+ const entities = datas
52
+ .filter((x) => !matches.has(x.id))
53
+ .map((x) => this.repository.create(x));
54
+ if (entities.length > 0) {
55
+ await this.repository.manager.transaction(async (manager) => {
56
+ await manager.save(entities);
57
+ });
58
+ if (this.logging) {
59
+ entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
51
60
  }
52
61
  }
62
+ sizes.current = sizes.previous + entities.length;
63
+ if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
64
+ const { current: total } = sizes;
65
+ this.logger.verbose(`✅ ${total} providers saved successfully`);
66
+ }
53
67
  }
54
- if (entities.length > 0) {
55
- await this.repository.save(entities);
56
- }
57
- sizes.current = await this.repository.count();
58
- multiples.previous = Math.floor(sizes.previous / 10);
59
- multiples.current = Math.floor(sizes.current / 10);
60
- if (multiples.current > multiples.previous) {
61
- const message = `✅ ${sizes.current} providers has been saved successfully`;
62
- this.logger.verbose(message);
68
+ catch (error) {
69
+ const { message, stack } = error;
70
+ this.logger.error('🔥 Failed to save providers');
71
+ this.logger.error(message);
72
+ this.logger.error(stack);
63
73
  }
64
74
  }
65
75
  async reset() {
@@ -76,6 +86,7 @@ __decorate([
76
86
  exports.ProviderRepositoryService = ProviderRepositoryService = __decorate([
77
87
  (0, common_1.Injectable)(),
78
88
  __param(0, (0, typeorm_1.InjectRepository)(provider_entity_1.ProviderEntity)),
79
- __metadata("design:paramtypes", [typeorm_2.Repository])
89
+ __metadata("design:paramtypes", [typeorm_2.Repository,
90
+ config_1.ConfigService])
80
91
  ], ProviderRepositoryService);
81
92
  //# sourceMappingURL=provider.repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/provider.repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/provider.repository.service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { Repository } from 'typeorm';
2
3
  import { Province } from '../../../common/class/province';
3
4
  import { ProvinceEntity } from '../entities/province.entity';
4
5
  export declare class ProvinceRepositoryService {
5
6
  private readonly repository;
7
+ private readonly config;
6
8
  private logger;
7
- constructor(repository: Repository<ProvinceEntity>);
9
+ private readonly logging;
10
+ constructor(repository: Repository<ProvinceEntity>, config: ConfigService);
8
11
  find(): Promise<Province[]>;
9
12
  count(): Promise<number>;
10
13
  save(provinces: Province[]): Promise<void>;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ProvinceRepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
17
18
  const event_emitter_1 = require("@nestjs/event-emitter");
18
19
  const typeorm_1 = require("@nestjs/typeorm");
19
20
  const typeorm_2 = require("typeorm");
@@ -23,9 +24,11 @@ const province_1 = require("../../../common/class/province");
23
24
  const province_entity_1 = require("../entities/province.entity");
24
25
  const event_enum_1 = require("../../../common/enum/event.enum");
25
26
  let ProvinceRepositoryService = class ProvinceRepositoryService {
26
- constructor(repository) {
27
+ constructor(repository, config) {
27
28
  this.repository = repository;
29
+ this.config = config;
28
30
  this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
31
+ this.logging = this.config.get('REPOSITORY_SAVE_PROVINCE_LOG');
29
32
  }
30
33
  async find() {
31
34
  const entities = await this.repository.find();
@@ -35,31 +38,38 @@ let ProvinceRepositoryService = class ProvinceRepositoryService {
35
38
  return this.repository.count();
36
39
  }
37
40
  async save(provinces) {
38
- const sizes = { previous: 0, current: 0 };
39
- const multiples = { previous: 0, current: 0 };
40
- sizes.previous = await this.count();
41
- const entities = [];
42
- for (const province of provinces) {
43
- const data = province.getData();
44
- const { id, name } = data;
45
- if (id) {
46
- const exists = await this.repository.existsBy({ id });
47
- if (!exists) {
48
- const entity = this.repository.create(data);
49
- entities.push(entity);
50
- this.logger.debug(`✅ ${name}`);
41
+ try {
42
+ const sizes = { previous: await this.repository.count(), current: 0 };
43
+ const datas = provinces.map((c) => c.getData()).filter((x) => x.id);
44
+ const identificators = datas.map((x) => x.id);
45
+ const matches = await this.repository
46
+ .find({
47
+ select: ['id'],
48
+ where: { id: (0, typeorm_2.In)(identificators) },
49
+ })
50
+ .then((res) => new Set(res.map((x) => x.id)));
51
+ const entities = datas
52
+ .filter((x) => !matches.has(x.id))
53
+ .map((x) => this.repository.create(x));
54
+ if (entities.length > 0) {
55
+ await this.repository.manager.transaction(async (manager) => {
56
+ await manager.save(entities);
57
+ });
58
+ if (this.logging) {
59
+ entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
51
60
  }
52
61
  }
62
+ sizes.current = sizes.previous + entities.length;
63
+ if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
64
+ const { current: total } = sizes;
65
+ this.logger.verbose(`✅ ${total} provinces saved successfully`);
66
+ }
53
67
  }
54
- if (entities.length > 0) {
55
- await this.repository.save(entities);
56
- }
57
- sizes.current = await this.repository.count();
58
- multiples.previous = Math.floor(sizes.previous / 10);
59
- multiples.current = Math.floor(sizes.current / 10);
60
- if (multiples.current > multiples.previous) {
61
- const message = `✅ ${sizes.current} provinces has been saved successfully`;
62
- this.logger.verbose(message);
68
+ catch (error) {
69
+ const { message, stack } = error;
70
+ this.logger.error('🔥 Failed to save provinces');
71
+ this.logger.error(message);
72
+ this.logger.error(stack);
63
73
  }
64
74
  }
65
75
  async reset() {
@@ -76,6 +86,7 @@ __decorate([
76
86
  exports.ProvinceRepositoryService = ProvinceRepositoryService = __decorate([
77
87
  (0, common_1.Injectable)(),
78
88
  __param(0, (0, typeorm_1.InjectRepository)(province_entity_1.ProvinceEntity)),
79
- __metadata("design:paramtypes", [typeorm_2.Repository])
89
+ __metadata("design:paramtypes", [typeorm_2.Repository,
90
+ config_1.ConfigService])
80
91
  ], ProvinceRepositoryService);
81
92
  //# sourceMappingURL=province.repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"province.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/province.repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"province.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/province.repository.service.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ let StorageService = StorageService_1 = class StorageService {
31
31
  }
32
32
  }
33
33
  getPath(slug) {
34
- const filename = `${slug}_data.json`;
34
+ const filename = `${slug}.json`;
35
35
  const filepath = (0, path_1.join)(output_1.OUTPUT_PATH, filename);
36
36
  return filepath;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/modules/storage/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2BAAoC;AACpC,+BAA4B;AAG5B,yDAA2D;AAIpD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC;YACH,MAAM,aAAE,CAAC,MAAM,CAAC,oBAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,aAAE,CAAC,KAAK,CAAC,oBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,GAAG,IAAI,YAAY,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,oBAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;;GACA,cAAc,CAiD1B"}
1
+ {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/modules/storage/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2BAAoC;AACpC,+BAA4B;AAG5B,yDAA2D;AAIpD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC;YACH,MAAM,aAAE,CAAC,MAAM,CAAC,oBAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,aAAE,CAAC,KAAK,CAAC,oBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,oBAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;;GACA,cAAc,CAiD1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rafikidota/cuba-ofertas-scraping",
3
- "version": "0.42.0",
3
+ "version": "0.43.0",
4
4
  "description": "Sometimes, the best way to solve your own problems is to help someone else.",
5
5
  "repository": {
6
6
  "type": "git",