@bytebrand/export-cars 1.1.0 → 1.2.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 (44) hide show
  1. package/api_export_cars_dasparking.xml +576 -1
  2. package/dist/config/kleinanzeigeFocus.config.d.ts +5 -0
  3. package/dist/config/kleinanzeigeFocus.config.js +15 -0
  4. package/dist/config/kleinanzeigeFocus.config.js.map +1 -0
  5. package/dist/enums/export-type.enum.d.ts +2 -1
  6. package/dist/enums/export-type.enum.js +1 -0
  7. package/dist/enums/export-type.enum.js.map +1 -1
  8. package/dist/export.schema.d.ts +6 -0
  9. package/dist/export.schema.js +6 -0
  10. package/dist/export.schema.js.map +1 -1
  11. package/dist/exporters/index.d.ts +1 -0
  12. package/dist/exporters/index.js +18 -0
  13. package/dist/exporters/index.js.map +1 -0
  14. package/dist/exporters/rubrikk.exporter.d.ts +13 -0
  15. package/dist/exporters/rubrikk.exporter.js +68 -0
  16. package/dist/exporters/rubrikk.exporter.js.map +1 -0
  17. package/dist/formats/auto24-xml.builder.js +1 -2
  18. package/dist/formats/auto24-xml.builder.js.map +1 -1
  19. package/dist/formats/index.d.ts +1 -0
  20. package/dist/formats/index.js +18 -0
  21. package/dist/formats/index.js.map +1 -0
  22. package/dist/formats/rubrikk-xml.builder.d.ts +7 -0
  23. package/dist/formats/rubrikk-xml.builder.js +25 -0
  24. package/dist/formats/rubrikk-xml.builder.js.map +1 -0
  25. package/dist/interfaces/export-item.interface.d.ts +53 -0
  26. package/dist/transformers/index.d.ts +1 -0
  27. package/dist/transformers/index.js +18 -0
  28. package/dist/transformers/index.js.map +1 -0
  29. package/dist/transformers/rubrikk.transformer.d.ts +29 -0
  30. package/dist/transformers/rubrikk.transformer.js +211 -0
  31. package/dist/transformers/rubrikk.transformer.js.map +1 -0
  32. package/dist/tsconfig.build.tsbuildinfo +1 -1
  33. package/package.json +2 -2
  34. package/src/config/kleinanzeigeFocus.config.ts +12 -0
  35. package/src/enums/export-type.enum.ts +1 -0
  36. package/src/export.schema.ts +6 -0
  37. package/src/exporters/index.ts +1 -0
  38. package/src/exporters/rubrikk.exporter.ts +53 -0
  39. package/src/formats/auto24-xml.builder.ts +1 -2
  40. package/src/formats/index.ts +1 -0
  41. package/src/formats/rubrikk-xml.builder.ts +27 -0
  42. package/src/interfaces/export-item.interface.ts +54 -0
  43. package/src/transformers/index.ts +1 -0
  44. package/src/transformers/rubrikk.transformer.ts +237 -0
@@ -12,6 +12,7 @@ import { MarktdeConfig } from './config/marktde.config';
12
12
  import { MeinstadtConfig } from './config/meinstadt.config';
13
13
  import { OoyyoConfig } from './config/ooyyo.config';
14
14
  import { YescarConfig } from './config/yescar.config';
15
+ import { KleinanzeigeFocusConfig } from './config/kleinanzeigeFocus.config';
15
16
  import { As24Exporter } from './exporters/as24.exporter';
16
17
  import { Auto24Exporter } from './exporters/auto24.exporter';
17
18
  import { AutouncleExporter } from './exporters/autouncle.exporter';
@@ -21,6 +22,7 @@ import { GoogleExporter } from './exporters/google.exporter';
21
22
  import { MeinstadtExporter } from './exporters/meinstadt.exporter';
22
23
  import { MobileExporter } from './exporters/mobile.exporter';
23
24
  import { OoyyoExporter } from './exporters/ooyyo.exporter';
25
+ import { RubrikkExporter } from './exporters';
24
26
  export declare const exportSchema: {
25
27
  eauto: {
26
28
  config: typeof EautoConfig;
@@ -78,4 +80,8 @@ export declare const exportSchema: {
78
80
  config: typeof DasparkingConfig;
79
81
  exporter: typeof Auto24Exporter;
80
82
  };
83
+ kleinanzeigefocus: {
84
+ config: typeof KleinanzeigeFocusConfig;
85
+ exporter: typeof RubrikkExporter;
86
+ };
81
87
  };
@@ -15,6 +15,7 @@ const marktde_config_1 = require("./config/marktde.config");
15
15
  const meinstadt_config_1 = require("./config/meinstadt.config");
16
16
  const ooyyo_config_1 = require("./config/ooyyo.config");
17
17
  const yescar_config_1 = require("./config/yescar.config");
18
+ const kleinanzeigeFocus_config_1 = require("./config/kleinanzeigeFocus.config");
18
19
  const export_type_enum_1 = require("./enums/export-type.enum");
19
20
  const as24_exporter_1 = require("./exporters/as24.exporter");
20
21
  const auto24_exporter_1 = require("./exporters/auto24.exporter");
@@ -25,6 +26,7 @@ const google_exporter_1 = require("./exporters/google.exporter");
25
26
  const meinstadt_exporter_1 = require("./exporters/meinstadt.exporter");
26
27
  const mobile_exporter_1 = require("./exporters/mobile.exporter");
27
28
  const ooyyo_exporter_1 = require("./exporters/ooyyo.exporter");
29
+ const exporters_1 = require("./exporters");
28
30
  exports.exportSchema = {
29
31
  [export_type_enum_1.ExportType.EAUTO]: {
30
32
  config: eauto_config_1.EautoConfig,
@@ -82,5 +84,9 @@ exports.exportSchema = {
82
84
  config: dasparking_config_1.DasparkingConfig,
83
85
  exporter: auto24_exporter_1.Auto24Exporter,
84
86
  },
87
+ [export_type_enum_1.ExportType.KLEINANZEIGE_FOCUS]: {
88
+ config: kleinanzeigeFocus_config_1.KleinanzeigeFocusConfig,
89
+ exporter: exporters_1.RubrikkExporter,
90
+ },
85
91
  };
86
92
  //# sourceMappingURL=export.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.schema.js","sourceRoot":"","sources":["../src/export.schema.ts"],"names":[],"mappings":";;;AAAA,oEAAgE;AAChE,sDAAkD;AAClD,0DAAsD;AACtD,kEAA8D;AAC9D,gEAA4D;AAC5D,8DAAyD;AACzD,kEAA8D;AAC9D,wDAAoD;AACpD,kDAA8C;AAC9C,0DAAsD;AACtD,4DAAwD;AACxD,gEAA4D;AAC5D,wDAAoD;AACpD,0DAAsD;AACtD,+DAAsD;AACtD,6DAAyD;AACzD,iEAA6D;AAC7D,uEAAmE;AACnE,qEAAgE;AAChE,yDAAqD;AACrD,iEAA6D;AAC7D,uEAAmE;AACnE,iEAA6D;AAC7D,+DAA2D;AAE9C,QAAA,YAAY,GAAG;IAC1B,CAAC,6BAAU,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,EAAE,0BAAW;QACnB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,OAAO,CAAC,EAAE;QACpB,MAAM,EAAE,8BAAa;QACrB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,UAAU,CAAC,EAAE;QACvB,MAAM,EAAE,oCAAgB;QACxB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,EAAE,CAAC,EAAE;QACf,MAAM,EAAE,oBAAQ;QAChB,QAAQ,EAAE,wBAAU;KACrB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,EAAE,0BAAW;QACnB,QAAQ,EAAE,8BAAa;KACxB;IACD,CAAC,6BAAU,CAAC,SAAS,CAAC,EAAE;QACtB,MAAM,EAAE,kCAAe;QACvB,QAAQ,EAAE,sCAAiB;KAC5B;IACD,CAAC,6BAAU,CAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,EAAE,+BAAa;QACrB,QAAQ,EAAE,mCAAe;KAC1B;IACD,CAAC,6BAAU,CAAC,SAAS,CAAC,EAAE;QACtB,MAAM,EAAE,kCAAe;QACvB,QAAQ,EAAE,sCAAiB;KAC5B;IACD,CAAC,6BAAU,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,EAAE,wBAAU;QAClB,QAAQ,EAAE,4BAAY;KACvB;IACD,CAAC,6BAAU,CAAC,WAAW,CAAC,EAAE;QACxB,MAAM,EAAE,sCAAiB;QACzB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,UAAU,CAAC,EAAE;QACvB,MAAM,EAAE,oCAAgB;QACxB,QAAQ,EAAE,gCAAc;KACzB;CACF,CAAC"}
1
+ {"version":3,"file":"export.schema.js","sourceRoot":"","sources":["../src/export.schema.ts"],"names":[],"mappings":";;;AAAA,oEAAgE;AAChE,sDAAkD;AAClD,0DAAsD;AACtD,kEAA8D;AAC9D,gEAA4D;AAC5D,8DAAyD;AACzD,kEAA8D;AAC9D,wDAAoD;AACpD,kDAA8C;AAC9C,0DAAsD;AACtD,4DAAwD;AACxD,gEAA4D;AAC5D,wDAAoD;AACpD,0DAAsD;AACtD,gFAA4E;AAC5E,+DAAsD;AACtD,6DAAyD;AACzD,iEAA6D;AAC7D,uEAAmE;AACnE,qEAAgE;AAChE,yDAAqD;AACrD,iEAA6D;AAC7D,uEAAmE;AACnE,iEAA6D;AAC7D,+DAA2D;AAC3D,2CAA8C;AAEjC,QAAA,YAAY,GAAG;IAC1B,CAAC,6BAAU,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,EAAE,0BAAW;QACnB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,OAAO,CAAC,EAAE;QACpB,MAAM,EAAE,8BAAa;QACrB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,UAAU,CAAC,EAAE;QACvB,MAAM,EAAE,oCAAgB;QACxB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,EAAE,CAAC,EAAE;QACf,MAAM,EAAE,oBAAQ;QAChB,QAAQ,EAAE,wBAAU;KACrB;IACD,CAAC,6BAAU,CAAC,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,4BAAY;QACpB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,EAAE,0BAAW;QACnB,QAAQ,EAAE,8BAAa;KACxB;IACD,CAAC,6BAAU,CAAC,SAAS,CAAC,EAAE;QACtB,MAAM,EAAE,kCAAe;QACvB,QAAQ,EAAE,sCAAiB;KAC5B;IACD,CAAC,6BAAU,CAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,EAAE,+BAAa;QACrB,QAAQ,EAAE,mCAAe;KAC1B;IACD,CAAC,6BAAU,CAAC,SAAS,CAAC,EAAE;QACtB,MAAM,EAAE,kCAAe;QACvB,QAAQ,EAAE,sCAAiB;KAC5B;IACD,CAAC,6BAAU,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,EAAE,wBAAU;QAClB,QAAQ,EAAE,4BAAY;KACvB;IACD,CAAC,6BAAU,CAAC,WAAW,CAAC,EAAE;QACxB,MAAM,EAAE,sCAAiB;QACzB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,UAAU,CAAC,EAAE;QACvB,MAAM,EAAE,oCAAgB;QACxB,QAAQ,EAAE,gCAAc;KACzB;IACD,CAAC,6BAAU,CAAC,kBAAkB,CAAC,EAAE;QAC/B,MAAM,EAAE,kDAAuB;QAC/B,QAAQ,EAAE,2BAAe;KAC1B;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './rubrikk.exporter';
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./rubrikk.exporter"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exporters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
@@ -0,0 +1,13 @@
1
+ import { Exporter } from '../interfaces/exporter.interface';
2
+ import { CarService } from '../services/car.service';
3
+ import { ConfigService } from '../services/config.service';
4
+ import { LoaderService } from '../services/loader.service';
5
+ import { ModuleRef } from '@nestjs/core';
6
+ export declare class RubrikkExporter implements Exporter {
7
+ private carService;
8
+ private configService;
9
+ private loaderService;
10
+ private moduleRef;
11
+ constructor(carService: CarService, configService: ConfigService, loaderService: LoaderService, moduleRef: ModuleRef);
12
+ export(): Promise<void>;
13
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RubrikkExporter = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const car_service_1 = require("../services/car.service");
15
+ const config_service_1 = require("../services/config.service");
16
+ const loader_service_1 = require("../services/loader.service");
17
+ const core_1 = require("@nestjs/core");
18
+ const cronicle_helper_1 = require("@bytebrand/cronicle-helper");
19
+ const zipper_1 = require("@bytebrand/zipper");
20
+ const formats_1 = require("../formats");
21
+ const transformers_1 = require("../transformers");
22
+ let RubrikkExporter = class RubrikkExporter {
23
+ carService;
24
+ configService;
25
+ loaderService;
26
+ moduleRef;
27
+ constructor(carService, configService, loaderService, moduleRef) {
28
+ this.carService = carService;
29
+ this.configService = configService;
30
+ this.loaderService = loaderService;
31
+ this.moduleRef = moduleRef;
32
+ }
33
+ async export() {
34
+ for (const file of this.configService.config.outputFiles) {
35
+ const exists = await cronicle_helper_1.CronicleUtils.exists(file);
36
+ exists && (await cronicle_helper_1.CronicleUtils.unlink(file));
37
+ }
38
+ const [fileXml, fileGZ] = this.configService.config.outputFiles;
39
+ const rubrikkXmlBuilder = new formats_1.RubrikkXmlBuilder(fileXml);
40
+ const rubrikkTransformer = await this.moduleRef.create(transformers_1.RubrikkTransformer);
41
+ await rubrikkXmlBuilder.buildStart();
42
+ await this.loaderService.process(async (chunk) => {
43
+ if (chunk && chunk.data) {
44
+ for (let i = 0; i < chunk.data.length; i += 1) {
45
+ const data = chunk.data[i];
46
+ const { car, images } = data;
47
+ const transformed_car = await rubrikkTransformer.transform({ car, images });
48
+ await rubrikkXmlBuilder.addItem(transformed_car);
49
+ this.carService.counter.countCar(images);
50
+ }
51
+ chunk.data = null;
52
+ }
53
+ });
54
+ await rubrikkXmlBuilder.buildEnd();
55
+ if (fileGZ) {
56
+ await zipper_1.Zipper.tar({ dest: fileGZ, fileList: [fileXml] });
57
+ }
58
+ }
59
+ };
60
+ RubrikkExporter = __decorate([
61
+ (0, common_1.Injectable)(),
62
+ __metadata("design:paramtypes", [car_service_1.CarService,
63
+ config_service_1.ConfigService,
64
+ loader_service_1.LoaderService,
65
+ core_1.ModuleRef])
66
+ ], RubrikkExporter);
67
+ exports.RubrikkExporter = RubrikkExporter;
68
+ //# sourceMappingURL=rubrikk.exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubrikk.exporter.js","sourceRoot":"","sources":["../../src/exporters/rubrikk.exporter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,yDAAqD;AACrD,+DAA2D;AAC3D,+DAA2D;AAC3D,uCAAyC;AACzC,gEAA2D;AAC3D,8CAA2C;AAC3C,wCAA+C;AAC/C,kDAAqD;AAI9C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEhB;IACA;IACA;IACA;IAJV,YACU,UAAsB,EACtB,aAA4B,EAC5B,aAA4B,EAC5B,SAAoB;QAHpB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;IAC3B,CAAC;IACJ,KAAK,CAAC,MAAM;QACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,+BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,MAAM,+BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9C;QAED,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAEhE,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iCAAkB,CAAC,CAAC;QAE3E,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAuB,EAAE,EAAE;YACjE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;oBAE7B,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;oBAE5E,MAAM,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC1C;gBACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAEnC,IAAI,MAAM,EAAE;YACV,MAAM,eAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACzD;IACH,CAAC;CACF,CAAA;AAvCY,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAGW,wBAAU;QACP,8BAAa;QACb,8BAAa;QACjB,gBAAS;GALnB,eAAe,CAuC3B;AAvCY,0CAAe"}
@@ -6,8 +6,7 @@ class Auto24XmlBuilder extends cronicle_helper_1.XMLBuilderBase {
6
6
  async buildStart(totalResults = 0) {
7
7
  await this.write(`<autode version="1.1" types="detail">
8
8
  <link>https://www.auto.de</link>
9
- <language>de</language>
10
- <index_totalResults>${totalResults}</index_totalResults>`);
9
+ <language>de</language>`);
11
10
  }
12
11
  async addItem(car, location = '') {
13
12
  let item = '';
@@ -1 +1 @@
1
- {"version":3,"file":"auto24-xml.builder.js","sourceRoot":"","sources":["../../src/formats/auto24-xml.builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto24-xml.builder.js","sourceRoot":"","sources":["../../src/formats/auto24-xml.builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './rubrikk-xml.builder';
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./rubrikk-xml.builder"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formats/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -0,0 +1,7 @@
1
+ import { XMLBuilderBase } from '@bytebrand/cronicle-helper';
2
+ import { RubrikkXmlItem } from '../interfaces/export-item.interface';
3
+ export declare class RubrikkXmlBuilder extends XMLBuilderBase {
4
+ buildStart(): Promise<void>;
5
+ addItem(car: RubrikkXmlItem): Promise<void>;
6
+ buildEnd(): Promise<void>;
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RubrikkXmlBuilder = void 0;
4
+ const cronicle_helper_1 = require("@bytebrand/cronicle-helper");
5
+ class RubrikkXmlBuilder extends cronicle_helper_1.XMLBuilderBase {
6
+ async buildStart() {
7
+ await this.write('<?xml version="1.0" encoding="UTF-8"?><rubrikk>');
8
+ }
9
+ async addItem(car) {
10
+ let item = '\n<ad>\n';
11
+ const tags = Object.keys(car);
12
+ for (const tag of tags) {
13
+ const value = car[tag];
14
+ item += this.getElement(tag, value, true);
15
+ }
16
+ item += '</ad>';
17
+ await this.write(item);
18
+ }
19
+ async buildEnd() {
20
+ await this.write('</rubrikk>');
21
+ await this.end();
22
+ }
23
+ }
24
+ exports.RubrikkXmlBuilder = RubrikkXmlBuilder;
25
+ //# sourceMappingURL=rubrikk-xml.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubrikk-xml.builder.js","sourceRoot":"","sources":["../../src/formats/rubrikk-xml.builder.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAG5D,MAAa,iBAAkB,SAAQ,gCAAc;IACnD,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAmB;QAC/B,IAAI,IAAI,GAAG,UAAU,CAAC;QAEtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,IAAI,IAAI,OAAO,CAAC;QAEhB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;CACF;AAvBD,8CAuBC"}
@@ -144,3 +144,56 @@ export interface GoogleXmlItem {
144
144
  monthlyInstallment: any;
145
145
  };
146
146
  }
147
+ export interface RubrikkXmlItem {
148
+ ad__all_imageurls: string[];
149
+ ad__condition_new_used_etc: string;
150
+ ad__description: string;
151
+ ad__headline: string;
152
+ ad__imageurl: string;
153
+ ad__price: number;
154
+ ad__price_currency: string;
155
+ product__type: string;
156
+ ad__url: string;
157
+ efficiency_class: string;
158
+ ad__number_ad__number_reference_id: string;
159
+ category_original: string;
160
+ maincategory_original: string;
161
+ advertiser__company_homepage_url: string;
162
+ advertiser__company_logo_url: string;
163
+ advertiser__email: string;
164
+ advertiser__name_company_name: string;
165
+ advertiser__phone: string;
166
+ advertiser__type: string;
167
+ advertiser__company_employee: string;
168
+ location__abroad_region: string;
169
+ location__country: string;
170
+ location__municipality_city: string;
171
+ location__zip_postal_code: string;
172
+ location__streetaddress: string;
173
+ location__latitude: number;
174
+ location__longitude: number;
175
+ motoring__body_type: string;
176
+ motoring__color: string;
177
+ motoring__drivetrain: string;
178
+ motoring__emission_class: string;
179
+ motoring__emission_co2: number;
180
+ motoring__emission_co2_unit: string;
181
+ motoring__emission_sticker: string;
182
+ motoring__engine_displacement_cubic_centimeters: number;
183
+ motoring__fuel_consumption_combined: number;
184
+ motoring__fuel_consumption_extra_urban: number;
185
+ motoring__fuel_consumption_extra_urban_unit: string;
186
+ motoring__fuel_consumption_combined_unit: string;
187
+ motoring__fuel_consumption_urban: number;
188
+ motoring__fuel_consumption_urban_unit: string;
189
+ motoring__fuel_type: string;
190
+ motoring__make: string;
191
+ motoring__mileage_kilometers: number;
192
+ motoring__model: string;
193
+ motoring__model_year: number;
194
+ motoring__number_of_doors: number;
195
+ motoring__number_of_seats: number;
196
+ motoring__power_kw: number;
197
+ motoring__power_hp: number;
198
+ motoring__transmission: string;
199
+ }
@@ -0,0 +1 @@
1
+ export * from './rubrikk.transformer';
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./rubrikk.transformer"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -0,0 +1,29 @@
1
+ import { DataSchemes } from '@bytebrand/car-schema';
2
+ import { RubrikkXmlItem } from '../interfaces/export-item.interface';
3
+ import { ConfigService } from '../services/config.service';
4
+ import { ImboImageResponseInterface } from '@bytebrand/chunkable';
5
+ export declare class RubrikkTransformer {
6
+ private readonly configService;
7
+ private translator;
8
+ private postalCodesService;
9
+ constructor(configService: ConfigService);
10
+ transform({ car, images, }: {
11
+ car: DataSchemes.Car;
12
+ images: ImboImageResponseInterface[];
13
+ }): Promise<RubrikkXmlItem>;
14
+ private translateSelector;
15
+ private getTitle;
16
+ private getCondition;
17
+ private getCategory;
18
+ private getCarLink;
19
+ private getImageLink;
20
+ private getImagesLinks;
21
+ private getEnergyClass;
22
+ private getStreetAddress;
23
+ private getRegion;
24
+ private getCoords;
25
+ private getLocationByInfo;
26
+ private getColor;
27
+ private getDrivetrain;
28
+ private getYear;
29
+ }
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RubrikkTransformer = void 0;
13
+ const lodash_1 = require("lodash");
14
+ const common_1 = require("@nestjs/common");
15
+ const i18n_dictionaries_1 = require("@bytebrand/i18n-dictionaries");
16
+ const car_basic_data_scope_1 = require("@bytebrand/car-basic-data-scope");
17
+ const schema_tools_1 = require("@bytebrand/schema-tools");
18
+ const config_service_1 = require("../services/config.service");
19
+ const moment = require("moment/moment");
20
+ const validator_utils_1 = require("../utils/validator.utils");
21
+ let RubrikkTransformer = class RubrikkTransformer {
22
+ configService;
23
+ translator;
24
+ postalCodesService;
25
+ constructor(configService) {
26
+ this.configService = configService;
27
+ const dict = { ...i18n_dictionaries_1.de, ...i18n_dictionaries_1.deVehicleProps, ...i18n_dictionaries_1.deVehicleDetailsPage };
28
+ this.postalCodesService = car_basic_data_scope_1.DePostalCodesService.getInstance();
29
+ this.translator = new schema_tools_1.TranslatorExtended(dict);
30
+ }
31
+ async transform({ car, images, }) {
32
+ const autodeId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', ''));
33
+ const region = await this.getRegion(car);
34
+ const { longitude, latitude } = await this.getCoords(car);
35
+ return {
36
+ ad__all_imageurls: this.getImagesLinks(autodeId, images),
37
+ ad__condition_new_used_etc: this.getCondition(car),
38
+ ad__description: (0, lodash_1.toString)((0, lodash_1.get)(car, 'offer.offerDescription', '')),
39
+ ad__headline: this.getTitle(car),
40
+ ad__imageurl: this.getImageLink(car),
41
+ ad__price: (0, lodash_1.toNumber)((0, lodash_1.get)(car, 'price.currentSalesPrice', null)),
42
+ ad__price_currency: (0, lodash_1.toString)((0, lodash_1.get)(car, 'price.currency', 'EUR')),
43
+ product__type: this.getCategory(car),
44
+ ad__url: this.getCarLink(car),
45
+ efficiency_class: this.getEnergyClass(car),
46
+ ad__number_ad__number_reference_id: (0, lodash_1.toString)((0, lodash_1.get)(car, 'metaData.vehicleId', '')),
47
+ category_original: 'Vehicles',
48
+ maincategory_original: 'Cars',
49
+ advertiser__company_homepage_url: 'https://www.auto.de',
50
+ advertiser__company_logo_url: 'https://autode-static.de/wp-content/themes/autode/front/img/header/b_logo_autode.svg',
51
+ advertiser__email: 'auto@auto.de',
52
+ advertiser__name_company_name: 'Auto.de',
53
+ advertiser__phone: '+498000008300',
54
+ advertiser__type: 'Dealer',
55
+ advertiser__company_employee: 'auto.de',
56
+ location__abroad_region: region,
57
+ location__country: 'Deutschland',
58
+ location__municipality_city: (0, lodash_1.get)(car, 'location.city', ''),
59
+ location__zip_postal_code: (0, lodash_1.toString)((0, lodash_1.get)(car, 'location.zipCode', '')),
60
+ location__streetaddress: this.getStreetAddress(car),
61
+ location__longitude: longitude,
62
+ location__latitude: latitude,
63
+ motoring__body_type: this.translateSelector((0, lodash_1.get)(car, 'mainData.category', '')),
64
+ motoring__color: this.getColor(car),
65
+ motoring__drivetrain: this.getDrivetrain(car),
66
+ motoring__emission_class: this.translateSelector((0, lodash_1.get)(car, 'environmentEmissions.emissionClass', '')),
67
+ motoring__emission_co2: (0, lodash_1.get)(car, 'environmentEmissions.co2', null),
68
+ motoring__emission_co2_unit: 'g/km',
69
+ motoring__emission_sticker: this.translateSelector((0, lodash_1.get)(car, 'environmentEmissions.emissionSticker', '')),
70
+ motoring__engine_displacement_cubic_centimeters: (0, lodash_1.toNumber)((0, lodash_1.get)(car, 'engineData.cubicCapacity', null)),
71
+ motoring__fuel_consumption_combined: (0, lodash_1.get)(car, 'consumption.consumptionCombined', null),
72
+ motoring__fuel_consumption_combined_unit: 'l',
73
+ motoring__fuel_consumption_extra_urban: (0, lodash_1.get)(car, 'consumption.consumptionOuter', null),
74
+ motoring__fuel_consumption_extra_urban_unit: 'l',
75
+ motoring__fuel_consumption_urban: (0, lodash_1.get)(car, 'consumption.consumptionInner', null),
76
+ motoring__fuel_consumption_urban_unit: 'l',
77
+ motoring__fuel_type: this.translateSelector((0, lodash_1.get)(car, 'consumption.fuel', '')),
78
+ motoring__make: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.make', '')),
79
+ motoring__mileage_kilometers: (0, lodash_1.get)(car, 'mainData.mileage', null),
80
+ motoring__model: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.model', '')),
81
+ motoring__model_year: this.getYear(car),
82
+ motoring__number_of_doors: (0, lodash_1.get)(car, 'mainData.doors', null),
83
+ motoring__number_of_seats: (0, lodash_1.get)(car, 'mainData.seats', null),
84
+ motoring__power_kw: (0, lodash_1.get)(car, 'engineData.powerKW', null),
85
+ motoring__power_hp: (0, lodash_1.get)(car, 'engineData.powerPS', null),
86
+ motoring__transmission: this.getDrivetrain(car),
87
+ };
88
+ }
89
+ translateSelector(selector) {
90
+ if ((0, lodash_1.isEmpty)(selector) || selector === 'selector_unknown') {
91
+ return '';
92
+ }
93
+ return this.translator.translateVal(selector);
94
+ }
95
+ getTitle(car) {
96
+ const make = (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.make', ''));
97
+ const model = (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.model', ''));
98
+ const subModel = (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.subModel', ''));
99
+ return (0, lodash_1.trim)((0, lodash_1.escape)((0, lodash_1.join)([make, model, subModel], ' ')));
100
+ }
101
+ getCondition(car) {
102
+ const available = {
103
+ selector_condition_new: 'Neu',
104
+ selector_condition_used: 'Gebraucht',
105
+ selector_unknown: 'Gebraucht',
106
+ };
107
+ const condition = (0, lodash_1.get)(car, 'mainData.condition', 'selector_unknown');
108
+ return (0, lodash_1.get)(available, condition);
109
+ }
110
+ getCategory(car) {
111
+ return this.translator.translateVal((0, lodash_1.get)(car, 'mainData.category', ''));
112
+ }
113
+ getCarLink(car) {
114
+ const autodeId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', ''));
115
+ return `https://www.${this.configService.config.url}/search/vehicle/${autodeId}?source=classifieds&medium=listing&campaign=focus`;
116
+ }
117
+ getImageLink(car) {
118
+ const mainImageId = (0, lodash_1.get)(car, 'metaData.mainImageId', '');
119
+ return mainImageId
120
+ ? `https://images.auto.de/carimage/${car._id}/${mainImageId}/large-cached.webp`
121
+ : 'https://images.auto.de/carimage/noimage/7pNvWELuWhZX/large-cached.jpeg';
122
+ }
123
+ getImagesLinks(carId, images) {
124
+ if ((0, validator_utils_1.isNotEmptyArray)(images)) {
125
+ return images.map((image) => {
126
+ return `${this.configService.config.url}/carimage/${carId}/${image.imageIdentifier}/large`;
127
+ });
128
+ }
129
+ return [];
130
+ }
131
+ getEnergyClass(car) {
132
+ const available = {
133
+ selector_energyEfficiencyClass_a: 'A',
134
+ selector_energyEfficiencyClass_ap: 'A+',
135
+ selector_energyEfficiencyClass_app: 'A++',
136
+ selector_energyEfficiencyClass_appp: 'A+++',
137
+ selector_energyEfficiencyClass_b: 'B',
138
+ selector_energyEfficiencyClass_c: 'C',
139
+ selector_energyEfficiencyClass_d: 'D',
140
+ selector_energyEfficiencyClass_e: 'E',
141
+ selector_energyEfficiencyClass_f: 'F',
142
+ selector_energyEfficiencyClass_g: 'G',
143
+ selector_unknown: 'default',
144
+ };
145
+ const energyClass = (0, lodash_1.get)(car, 'environmentEmissions.energyEfficiencyClass', 'selector_unknown');
146
+ return (0, lodash_1.get)(available, energyClass);
147
+ }
148
+ getStreetAddress(car) {
149
+ const street = (0, lodash_1.get)(car, 'location.street', '');
150
+ const streetNumber = (0, lodash_1.get)(car, 'location.streetNumber', '');
151
+ return (0, lodash_1.trim)((0, lodash_1.escape)((0, lodash_1.join)([street, streetNumber], ' ')));
152
+ }
153
+ async getRegion(car) {
154
+ const city = (0, lodash_1.get)(car, 'location.city', '');
155
+ const zipCode = (0, lodash_1.toNumber)((0, lodash_1.get)(car, 'location.zipCode', ''));
156
+ const locationEntity = await this.getLocationByInfo({ city, zip: (0, lodash_1.toSafeInteger)(zipCode) });
157
+ return (0, lodash_1.get)(locationEntity, 'Place Name', 'Deutschland');
158
+ }
159
+ async getCoords(car) {
160
+ const city = (0, lodash_1.get)(car, 'location.city', '');
161
+ const zipCode = (0, lodash_1.toNumber)((0, lodash_1.get)(car, 'location.zipCode', ''));
162
+ const locationEntity = await this.getLocationByInfo({ city, zip: (0, lodash_1.toSafeInteger)(zipCode) });
163
+ const data = {
164
+ latitude: (0, lodash_1.get)(car, 'location.latitude'),
165
+ longitude: (0, lodash_1.get)(car, 'location.longitude'),
166
+ };
167
+ if (data.latitude && data.longitude)
168
+ return data;
169
+ return {
170
+ longitude: (0, lodash_1.get)(locationEntity, 'Longitude'),
171
+ latitude: (0, lodash_1.get)(locationEntity, 'Latitude'),
172
+ };
173
+ }
174
+ async getLocationByInfo(info) {
175
+ let entry = await this.postalCodesService.getLocationByPostalCode(info.zip);
176
+ if (!entry) {
177
+ entry = await this.postalCodesService.getLocationByCity(info.city);
178
+ }
179
+ return entry;
180
+ }
181
+ getColor(car) {
182
+ let colorSelection = (0, lodash_1.get)(car, 'exterior.exteriorColor', 'other');
183
+ if (!colorSelection || colorSelection === 'selector_unknown') {
184
+ colorSelection = 'other';
185
+ }
186
+ return this.translator.translateVal(colorSelection);
187
+ }
188
+ getDrivetrain(car) {
189
+ const available = {
190
+ selector_unknown: 'Other',
191
+ selector_driveType_frontWheelDrive: 'FWD',
192
+ selector_driveType_rearWheelDrive: 'RWD',
193
+ selector_driveType_allWheelDrive: 'AWD',
194
+ };
195
+ const driveType = (0, lodash_1.get)(car, 'driveSuspension.driveType', 'selector_unknown');
196
+ return (0, lodash_1.get)(available, driveType);
197
+ }
198
+ getYear(car) {
199
+ const firstRegistration = (0, lodash_1.get)(car, 'mainData.firstRegistration', 0);
200
+ if (firstRegistration !== 0) {
201
+ return (0, lodash_1.toSafeInteger)(moment(firstRegistration * 1000).format('YYYY'));
202
+ }
203
+ return 0;
204
+ }
205
+ };
206
+ RubrikkTransformer = __decorate([
207
+ (0, common_1.Injectable)(),
208
+ __metadata("design:paramtypes", [config_service_1.ConfigService])
209
+ ], RubrikkTransformer);
210
+ exports.RubrikkTransformer = RubrikkTransformer;
211
+ //# sourceMappingURL=rubrikk.transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubrikk.transformer.js","sourceRoot":"","sources":["../../src/transformers/rubrikk.transformer.ts"],"names":[],"mappings":"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"}