@bytebrand/export-cars 0.0.3 → 1.0.6
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/.editorconfig +8 -0
- package/.eslintignore +1 -0
- package/.eslintrc.js +24 -0
- package/.prettierrc.js +7 -0
- package/README.md +67 -0
- package/dist/app.module.d.ts +2 -0
- package/dist/app.module.js +47 -0
- package/dist/app.module.js.map +1 -0
- package/dist/config/as24.config.d.ts +5 -0
- package/dist/config/as24.config.js +13 -0
- package/dist/config/as24.config.js.map +1 -0
- package/dist/config/auto24.config.d.ts +6 -0
- package/dist/config/auto24.config.js +31 -0
- package/dist/config/auto24.config.js.map +1 -0
- package/dist/config/autoboerse.config.d.ts +5 -0
- package/dist/config/autoboerse.config.js +15 -0
- package/dist/config/autoboerse.config.js.map +1 -0
- package/dist/config/autouncle.config.d.ts +5 -0
- package/dist/config/autouncle.config.js +14 -0
- package/dist/config/autouncle.config.js.map +1 -0
- package/dist/config/by-owner.config.d.ts +5 -0
- package/dist/config/by-owner.config.js +14 -0
- package/dist/config/by-owner.config.js.map +1 -0
- package/dist/config/config.d.ts +57 -0
- package/dist/config/config.js +78 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/eauto.config.d.ts +5 -0
- package/dist/config/eauto.config.js +15 -0
- package/dist/config/eauto.config.js.map +1 -0
- package/dist/config/fb.config.d.ts +5 -0
- package/dist/config/fb.config.js +14 -0
- package/dist/config/fb.config.js.map +1 -0
- package/dist/config/google.config.d.ts +5 -0
- package/dist/config/google.config.js +13 -0
- package/dist/config/google.config.js.map +1 -0
- package/dist/config/marktde.config.d.ts +5 -0
- package/dist/config/marktde.config.js +14 -0
- package/dist/config/marktde.config.js.map +1 -0
- package/dist/config/meinstadt.config.d.ts +5 -0
- package/dist/config/meinstadt.config.js +14 -0
- package/dist/config/meinstadt.config.js.map +1 -0
- package/dist/config/ooyyo.config.d.ts +5 -0
- package/dist/config/ooyyo.config.js +14 -0
- package/dist/config/ooyyo.config.js.map +1 -0
- package/dist/config/yescar.config.d.ts +5 -0
- package/dist/config/yescar.config.js +14 -0
- package/dist/config/yescar.config.js.map +1 -0
- package/dist/constants/autouncle.contants.d.ts +4 -0
- package/dist/constants/autouncle.contants.js +8 -0
- package/dist/constants/autouncle.contants.js.map +1 -0
- package/dist/constants/fb.constants.d.ts +7 -0
- package/dist/constants/fb.constants.js +11 -0
- package/dist/constants/fb.constants.js.map +1 -0
- package/dist/constants/rule-input.contants.d.ts +3 -0
- package/dist/constants/rule-input.contants.js +7 -0
- package/dist/constants/rule-input.contants.js.map +1 -0
- package/dist/enums/environment.enum.d.ts +5 -0
- package/dist/enums/environment.enum.js +10 -0
- package/dist/enums/environment.enum.js.map +1 -0
- package/dist/enums/export-type.enum.d.ts +14 -0
- package/dist/enums/export-type.enum.js +19 -0
- package/dist/enums/export-type.enum.js.map +1 -0
- package/dist/export.command.d.ts +11 -0
- package/dist/export.command.js +49 -0
- package/dist/export.command.js.map +1 -0
- package/dist/export.schema.d.ts +65 -0
- package/dist/export.schema.js +70 -0
- package/dist/export.schema.js.map +1 -0
- package/dist/exporters/as24.exporter.d.ts +13 -0
- package/dist/exporters/as24.exporter.js +68 -0
- package/dist/exporters/as24.exporter.js.map +1 -0
- package/dist/exporters/auto24.exporter.d.ts +13 -0
- package/dist/exporters/auto24.exporter.js +81 -0
- package/dist/exporters/auto24.exporter.js.map +1 -0
- package/dist/exporters/autouncle.exporter.d.ts +15 -0
- package/dist/exporters/autouncle.exporter.js +79 -0
- package/dist/exporters/autouncle.exporter.js.map +1 -0
- package/dist/exporters/by-owner.exporter.d.ts +11 -0
- package/dist/exporters/by-owner.exporter.js +58 -0
- package/dist/exporters/by-owner.exporter.js.map +1 -0
- package/dist/exporters/fb.exporter.d.ts +15 -0
- package/dist/exporters/fb.exporter.js +67 -0
- package/dist/exporters/fb.exporter.js.map +1 -0
- package/dist/exporters/google.exporter.d.ts +15 -0
- package/dist/exporters/google.exporter.js +67 -0
- package/dist/exporters/google.exporter.js.map +1 -0
- package/dist/exporters/meinstadt.exporter.d.ts +15 -0
- package/dist/exporters/meinstadt.exporter.js +84 -0
- package/dist/exporters/meinstadt.exporter.js.map +1 -0
- package/dist/exporters/mobile.exporter.d.ts +18 -0
- package/dist/exporters/mobile.exporter.js +111 -0
- package/dist/exporters/mobile.exporter.js.map +1 -0
- package/dist/exporters/ooyyo.exporter.d.ts +13 -0
- package/dist/exporters/ooyyo.exporter.js +65 -0
- package/dist/exporters/ooyyo.exporter.js.map +1 -0
- package/dist/formats/auto24-xml.builder.d.ts +7 -0
- package/dist/formats/auto24-xml.builder.js +47 -0
- package/dist/formats/auto24-xml.builder.js.map +1 -0
- package/dist/formats/autouncle-json.builder.d.ts +7 -0
- package/dist/formats/autouncle-json.builder.js +21 -0
- package/dist/formats/autouncle-json.builder.js.map +1 -0
- package/dist/formats/fb-xml.builder.d.ts +11 -0
- package/dist/formats/fb-xml.builder.js +63 -0
- package/dist/formats/fb-xml.builder.js.map +1 -0
- package/dist/formats/google-xml.builder.d.ts +8 -0
- package/dist/formats/google-xml.builder.js +32 -0
- package/dist/formats/google-xml.builder.js.map +1 -0
- package/dist/formats/meinstadt-json.builder.d.ts +7 -0
- package/dist/formats/meinstadt-json.builder.js +22 -0
- package/dist/formats/meinstadt-json.builder.js.map +1 -0
- package/dist/formats/ooyyo-xml.builder.d.ts +7 -0
- package/dist/formats/ooyyo-xml.builder.js +47 -0
- package/dist/formats/ooyyo-xml.builder.js.map +1 -0
- package/dist/input.questions.d.ts +3 -0
- package/dist/input.questions.js +32 -0
- package/dist/input.questions.js.map +1 -0
- package/dist/interfaces/description.interface.d.ts +22 -0
- package/dist/interfaces/description.interface.js +3 -0
- package/dist/interfaces/description.interface.js.map +1 -0
- package/dist/interfaces/export-item.interface.d.ts +147 -0
- package/dist/interfaces/export-item.interface.js +3 -0
- package/dist/interfaces/export-item.interface.js.map +1 -0
- package/dist/interfaces/exporter.interface.d.ts +3 -0
- package/dist/interfaces/exporter.interface.js +3 -0
- package/dist/interfaces/exporter.interface.js.map +1 -0
- package/dist/interfaces/input.interface.d.ts +5 -0
- package/dist/interfaces/input.interface.js +3 -0
- package/dist/interfaces/input.interface.js.map +1 -0
- package/dist/interfaces/mapping-rules.interface.d.ts +10 -0
- package/dist/interfaces/mapping-rules.interface.js +3 -0
- package/dist/interfaces/mapping-rules.interface.js.map +1 -0
- package/dist/interfaces/params.interface.d.ts +18 -0
- package/dist/interfaces/params.interface.js +3 -0
- package/dist/interfaces/params.interface.js.map +1 -0
- package/dist/interfaces/rule-parser.interface.d.ts +3 -0
- package/dist/interfaces/rule-parser.interface.js +3 -0
- package/dist/interfaces/rule-parser.interface.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +10 -0
- package/dist/main.js.map +1 -0
- package/dist/rules/abstract.rule.d.ts +13 -0
- package/dist/rules/abstract.rule.js +32 -0
- package/dist/rules/abstract.rule.js.map +1 -0
- package/dist/rules/date.rule.d.ts +7 -0
- package/dist/rules/date.rule.js +20 -0
- package/dist/rules/date.rule.js.map +1 -0
- package/dist/rules/number.rule.d.ts +7 -0
- package/dist/rules/number.rule.js +16 -0
- package/dist/rules/number.rule.js.map +1 -0
- package/dist/rules/string.rule.d.ts +5 -0
- package/dist/rules/string.rule.js +11 -0
- package/dist/rules/string.rule.js.map +1 -0
- package/dist/services/car.service.d.ts +24 -0
- package/dist/services/car.service.js +74 -0
- package/dist/services/car.service.js.map +1 -0
- package/dist/services/config.service.d.ts +6 -0
- package/dist/services/config.service.js +24 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/loader.service.d.ts +9 -0
- package/dist/services/loader.service.js +45 -0
- package/dist/services/loader.service.js.map +1 -0
- package/dist/services/mapping.service.d.ts +11 -0
- package/dist/services/mapping.service.js +73 -0
- package/dist/services/mapping.service.js.map +1 -0
- package/dist/services/marketing-images.service.d.ts +16 -0
- package/dist/services/marketing-images.service.js +58 -0
- package/dist/services/marketing-images.service.js.map +1 -0
- package/dist/services/request.service.d.ts +12 -0
- package/dist/services/request.service.js +48 -0
- package/dist/services/request.service.js.map +1 -0
- package/dist/services/rules.service.d.ts +15 -0
- package/dist/services/rules.service.js +68 -0
- package/dist/services/rules.service.js.map +1 -0
- package/dist/services/user.service.d.ts +11 -0
- package/dist/services/user.service.js +64 -0
- package/dist/services/user.service.js.map +1 -0
- package/dist/transformers/as24.transformer.d.ts +28 -0
- package/dist/transformers/as24.transformer.js +217 -0
- package/dist/transformers/as24.transformer.js.map +1 -0
- package/dist/transformers/auto24.transfomer.d.ts +16 -0
- package/dist/transformers/auto24.transfomer.js +155 -0
- package/dist/transformers/auto24.transfomer.js.map +1 -0
- package/dist/transformers/autouncle.transformer.d.ts +32 -0
- package/dist/transformers/autouncle.transformer.js +234 -0
- package/dist/transformers/autouncle.transformer.js.map +1 -0
- package/dist/transformers/by-owner.transformer.d.ts +12 -0
- package/dist/transformers/by-owner.transformer.js +274 -0
- package/dist/transformers/by-owner.transformer.js.map +1 -0
- package/dist/transformers/fb-description.transformer.d.ts +19 -0
- package/dist/transformers/fb-description.transformer.js +297 -0
- package/dist/transformers/fb-description.transformer.js.map +1 -0
- package/dist/transformers/fb-equipment.transformer.d.ts +8 -0
- package/dist/transformers/fb-equipment.transformer.js +149 -0
- package/dist/transformers/fb-equipment.transformer.js.map +1 -0
- package/dist/transformers/fb.transformer.d.ts +41 -0
- package/dist/transformers/fb.transformer.js +553 -0
- package/dist/transformers/fb.transformer.js.map +1 -0
- package/dist/transformers/google.transformer.d.ts +26 -0
- package/dist/transformers/google.transformer.js +164 -0
- package/dist/transformers/google.transformer.js.map +1 -0
- package/dist/transformers/meinstadt.transformer.d.ts +14 -0
- package/dist/transformers/meinstadt.transformer.js +95 -0
- package/dist/transformers/meinstadt.transformer.js.map +1 -0
- package/dist/transformers/mobile.transformer.d.ts +47 -0
- package/dist/transformers/mobile.transformer.js +471 -0
- package/dist/transformers/mobile.transformer.js.map +1 -0
- package/dist/transformers/ooyyo.transformer.d.ts +17 -0
- package/dist/transformers/ooyyo.transformer.js +127 -0
- package/dist/transformers/ooyyo.transformer.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utils/converter.utils.d.ts +1 -0
- package/dist/utils/converter.utils.js +15 -0
- package/dist/utils/converter.utils.js.map +1 -0
- package/dist/utils/date-time.utils.d.ts +1 -0
- package/dist/utils/date-time.utils.js +21 -0
- package/dist/utils/date-time.utils.js.map +1 -0
- package/dist/utils/parser.utils.d.ts +2 -0
- package/dist/utils/parser.utils.js +9 -0
- package/dist/utils/parser.utils.js.map +1 -0
- package/dist/utils/validator.utils.d.ts +2 -0
- package/dist/utils/validator.utils.js +12 -0
- package/dist/utils/validator.utils.js.map +1 -0
- package/nest-cli.json +5 -0
- package/package.json +55 -31
- package/src/app.module.ts +34 -0
- package/src/config/as24.config.ts +10 -0
- package/src/config/auto24.config.ts +29 -0
- package/src/config/autoboerse.config.ts +12 -0
- package/src/config/autouncle.config.ts +11 -0
- package/src/config/by-owner.config.ts +11 -0
- package/src/config/config.ts +87 -0
- package/src/config/eauto.config.ts +12 -0
- package/src/config/fb.config.ts +11 -0
- package/src/config/google.config.ts +10 -0
- package/src/config/marktde.config.ts +11 -0
- package/src/config/meinstadt.config.ts +11 -0
- package/src/config/ooyyo.config.ts +11 -0
- package/src/config/yescar.config.ts +11 -0
- package/src/constants/autouncle.contants.ts +4 -0
- package/src/constants/fb.constants.ts +7 -0
- package/src/constants/rule-input.contants.ts +3 -0
- package/src/enums/environment.enum.ts +5 -0
- package/src/enums/export-type.enum.ts +14 -0
- package/src/export.command.ts +35 -0
- package/src/export.schema.ts +67 -0
- package/src/exporters/as24.exporter.ts +70 -0
- package/src/exporters/auto24.exporter.ts +68 -0
- package/src/exporters/autouncle.exporter.ts +62 -0
- package/src/exporters/by-owner.exporter.ts +45 -0
- package/src/exporters/fb.exporter.ts +49 -0
- package/src/exporters/google.exporter.ts +48 -0
- package/src/exporters/meinstadt.exporter.ts +70 -0
- package/src/exporters/mobile.exporter.ts +113 -0
- package/src/exporters/ooyyo.exporter.ts +50 -0
- package/src/formats/auto24-xml.builder.ts +48 -0
- package/src/formats/autouncle-json.builder.ts +20 -0
- package/src/formats/fb-xml.builder.ts +71 -0
- package/src/formats/google-xml.builder.ts +35 -0
- package/src/formats/meinstadt-json.builder.ts +19 -0
- package/src/formats/ooyyo-xml.builder.ts +48 -0
- package/src/input.questions.ts +12 -0
- package/src/interfaces/description.interface.ts +24 -0
- package/src/interfaces/export-item.interface.ts +147 -0
- package/src/interfaces/exporter.interface.ts +3 -0
- package/src/interfaces/input.interface.ts +6 -0
- package/src/interfaces/mapping-rules.interface.ts +11 -0
- package/src/interfaces/params.interface.ts +19 -0
- package/src/interfaces/rule-parser.interface.ts +3 -0
- package/src/main.ts +9 -0
- package/src/rules/abstract.rule.ts +37 -0
- package/src/rules/date.rule.ts +18 -0
- package/src/rules/number.rule.ts +15 -0
- package/src/rules/string.rule.ts +8 -0
- package/src/services/car.service.ts +57 -0
- package/src/services/config.service.ts +15 -0
- package/src/services/loader.service.ts +30 -0
- package/src/services/mapping.service.ts +80 -0
- package/src/services/marketing-images.service.ts +67 -0
- package/src/services/request.service.ts +44 -0
- package/src/services/rules.service.ts +61 -0
- package/src/services/user.service.ts +52 -0
- package/src/transformers/as24.transformer.ts +225 -0
- package/src/transformers/auto24.transfomer.ts +155 -0
- package/src/transformers/autouncle.transformer.ts +264 -0
- package/src/transformers/by-owner.transformer.ts +364 -0
- package/src/transformers/fb-description.transformer.ts +316 -0
- package/src/transformers/fb-equipment.transformer.ts +161 -0
- package/src/transformers/fb.transformer.ts +640 -0
- package/src/transformers/google.transformer.ts +166 -0
- package/src/transformers/meinstadt.transformer.ts +80 -0
- package/src/transformers/mobile.transformer.ts +495 -0
- package/src/transformers/ooyyo.transformer.ts +123 -0
- package/src/utils/converter.utils.ts +11 -0
- package/src/utils/date-time.utils.ts +20 -0
- package/src/utils/parser.utils.ts +6 -0
- package/src/utils/validator.utils.ts +7 -0
- package/tsconfig.build.json +4 -0
- package/tsconfig.json +28 -34
- package/.prettierrc +0 -14
- package/dist/config/ConfigBuilder.d.ts +0 -4
- package/dist/config/ConfigBuilder.js +0 -69
- package/dist/config/ConfigBuilder.js.map +0 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -7
- package/dist/config/index.js.map +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -46
- package/dist/index.js.map +0 -1
- package/dist/interfaces/index.d.ts +0 -0
- package/dist/interfaces/index.js +0 -1
- package/dist/interfaces/index.js.map +0 -1
- package/dist/modules/acrhiver/TarArchiver.d.ts +0 -6
- package/dist/modules/acrhiver/TarArchiver.js +0 -52
- package/dist/modules/acrhiver/TarArchiver.js.map +0 -1
- package/dist/modules/acrhiver/index.d.ts +0 -2
- package/dist/modules/acrhiver/index.js +0 -7
- package/dist/modules/acrhiver/index.js.map +0 -1
- package/dist/modules/car-exporter/index.d.ts +0 -2
- package/dist/modules/car-exporter/index.js +0 -10
- package/dist/modules/car-exporter/index.js.map +0 -1
- package/dist/modules/car-loader/index.d.ts +0 -2
- package/dist/modules/car-loader/index.js +0 -12
- package/dist/modules/car-loader/index.js.map +0 -1
- package/index.js +0 -2
- package/readme.md +0 -11
- package/src/config/ConfigBuilder.ts +0 -69
- package/src/config/index.ts +0 -1
- package/src/index.ts +0 -44
- package/tslint.json +0 -51
- package/types/basic-ftp.d.ts +0 -72
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function convertToCSV(data: unknown): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToCSV = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
function convertToCSV(data) {
|
|
6
|
+
const converted = [];
|
|
7
|
+
Object.entries(data).forEach(e => {
|
|
8
|
+
const [k, v] = e;
|
|
9
|
+
const vCleared = (v || '').replace(new RegExp('"', 'gm'), '""');
|
|
10
|
+
(0, lodash_1.set)(converted, k, `"${vCleared}"`);
|
|
11
|
+
});
|
|
12
|
+
return converted.join(';');
|
|
13
|
+
}
|
|
14
|
+
exports.convertToCSV = convertToCSV;
|
|
15
|
+
//# sourceMappingURL=converter.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.utils.js","sourceRoot":"","sources":["../../src/utils/converter.utils.ts"],"names":[],"mappings":";;;AAAA,mCAA6B;AAE7B,SAAgB,YAAY,CAAC,IAAa;IACxC,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAa,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,IAAA,YAAG,EAAC,SAAS,EAAE,CAAC,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AARD,oCAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getMonthsDiff(date1: Date, date2: Date): number;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMonthsDiff = void 0;
|
|
4
|
+
function getMonthsDiff(date1, date2) {
|
|
5
|
+
let start_date = date1;
|
|
6
|
+
let end_date = date2;
|
|
7
|
+
let inverse = false;
|
|
8
|
+
if (date1 > date2) {
|
|
9
|
+
start_date = date2;
|
|
10
|
+
end_date = date1;
|
|
11
|
+
inverse = true;
|
|
12
|
+
}
|
|
13
|
+
end_date = new Date(end_date);
|
|
14
|
+
end_date.setDate(end_date.getDate() + 1);
|
|
15
|
+
const yearsDifference = end_date.getFullYear() - start_date.getFullYear();
|
|
16
|
+
const monthsDifference = end_date.getMonth() - start_date.getMonth();
|
|
17
|
+
const daysDifference = end_date.getDate() - start_date.getDate();
|
|
18
|
+
return (inverse ? -1 : 1) * (yearsDifference * 12 + monthsDifference + daysDifference / 30);
|
|
19
|
+
}
|
|
20
|
+
exports.getMonthsDiff = getMonthsDiff;
|
|
21
|
+
//# sourceMappingURL=date-time.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time.utils.js","sourceRoot":"","sources":["../../src/utils/date-time.utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAC,KAAW,EAAE,KAAW;IACpD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,KAAK,GAAG,KAAK,EAAE;QACjB,UAAU,GAAG,KAAK,CAAC;QACnB,QAAQ,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC1E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAEjE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,GAAG,gBAAgB,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC;AAC9F,CAAC;AAnBD,sCAmBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFields = void 0;
|
|
4
|
+
function parseFields(values, fc) {
|
|
5
|
+
const fieldsArr = values.split(',');
|
|
6
|
+
return fieldsArr.map((e) => fc(e));
|
|
7
|
+
}
|
|
8
|
+
exports.parseFields = parseFields;
|
|
9
|
+
//# sourceMappingURL=parser.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.utils.js","sourceRoot":"","sources":["../../src/utils/parser.utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAI,MAAc,EAAE,EAAiB;IAC9D,MAAM,SAAS,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAS,EAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAHD,kCAGC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isNotEmptyArray = exports.isValidVin = void 0;
|
|
4
|
+
function isValidVin(vin) {
|
|
5
|
+
return !!vin && vin.length === 17;
|
|
6
|
+
}
|
|
7
|
+
exports.isValidVin = isValidVin;
|
|
8
|
+
function isNotEmptyArray(array) {
|
|
9
|
+
return array && Array.isArray(array) && !!array.length;
|
|
10
|
+
}
|
|
11
|
+
exports.isNotEmptyArray = isNotEmptyArray;
|
|
12
|
+
//# sourceMappingURL=validator.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.utils.js","sourceRoot":"","sources":["../../src/utils/validator.utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,eAAe,CAAC,KAAgB;IAC9C,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACzD,CAAC;AAFD,0CAEC"}
|
package/nest-cli.json
ADDED
package/package.json
CHANGED
|
@@ -1,42 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/export-cars",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"author": "
|
|
3
|
+
"version": "1.0.6",
|
|
4
|
+
"description": "",
|
|
5
|
+
"author": "bytebrand",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
|
-
"main": "index.js",
|
|
8
7
|
"scripts": {
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"build": "tsc -d -p tsconfig.json",
|
|
8
|
+
"prebuild": "rimraf dist",
|
|
9
|
+
"build": "nest build",
|
|
12
10
|
"prepublishOnly": "npm run build",
|
|
13
|
-
"
|
|
11
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
12
|
+
"lint": "gts lint",
|
|
13
|
+
"clean": "gts clean",
|
|
14
|
+
"fix": "gts fix"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
|
-
"@bytebrand/
|
|
17
|
-
"@bytebrand/car-
|
|
18
|
-
"@bytebrand/
|
|
19
|
-
"@bytebrand/
|
|
20
|
-
"@bytebrand/
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
17
|
+
"@bytebrand/autode-request": "^1.5.13",
|
|
18
|
+
"@bytebrand/car-basic-data-scope": "~7.1.11",
|
|
19
|
+
"@bytebrand/car-description": "^1.2.24",
|
|
20
|
+
"@bytebrand/car-schema": "^3.9.12",
|
|
21
|
+
"@bytebrand/chunkable": "^5.4.4",
|
|
22
|
+
"@bytebrand/cronicle-helper": "^1.7.4",
|
|
23
|
+
"@bytebrand/fe-financing": "^5.3.1",
|
|
24
|
+
"@bytebrand/i18n-dictionaries": "~0.6.19",
|
|
25
|
+
"@bytebrand/schema-tools": "~2.1.19",
|
|
26
|
+
"@bytebrand/zipper": "^2.1.0",
|
|
27
|
+
"@nestjs/axios": "^0.1.0",
|
|
28
|
+
"@nestjs/common": "^9.0.0",
|
|
29
|
+
"@nestjs/core": "^9.0.0",
|
|
30
|
+
"bottleneck": "^2.19.5",
|
|
31
|
+
"cache-manager": "^5.1.1",
|
|
32
|
+
"csv-write-stream": "^2.0.0",
|
|
33
|
+
"google-spreadsheet": "^3.3.0",
|
|
34
|
+
"lodash": "^4.17.21",
|
|
35
|
+
"moment": "^2.29.4",
|
|
36
|
+
"nest-commander": "^3.1.0",
|
|
37
|
+
"reflect-metadata": "^0.1.13",
|
|
38
|
+
"rimraf": "^3.0.2",
|
|
39
|
+
"rxjs": "^7.2.0",
|
|
40
|
+
"vin-generator": "^1.0.1"
|
|
27
41
|
},
|
|
28
42
|
"devDependencies": {
|
|
29
|
-
"@
|
|
30
|
-
"@
|
|
31
|
-
"@types/
|
|
32
|
-
"@types/
|
|
33
|
-
"@types/
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
43
|
+
"@nestjs/cli": "^9.0.0",
|
|
44
|
+
"@nestjs/schematics": "^9.0.0",
|
|
45
|
+
"@types/google-spreadsheet": "^3.3.0",
|
|
46
|
+
"@types/inquirer": "^8.2.4",
|
|
47
|
+
"@types/lodash": "^4.14.186",
|
|
48
|
+
"@types/node": "^16.0.0",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
50
|
+
"@typescript-eslint/parser": "^5.0.0",
|
|
51
|
+
"eslint": "^8.0.1",
|
|
52
|
+
"eslint-config-prettier": "^8.3.0",
|
|
53
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
54
|
+
"gts": "^3.1.1",
|
|
55
|
+
"prettier": "^2.3.2",
|
|
56
|
+
"source-map-support": "^0.5.20",
|
|
57
|
+
"ts-loader": "^9.2.3",
|
|
58
|
+
"ts-node": "^10.0.0",
|
|
59
|
+
"tsconfig-paths": "4.1.0",
|
|
60
|
+
"typescript": "^4.7.4"
|
|
61
|
+
},
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=14.0.0"
|
|
40
64
|
},
|
|
41
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "6f0fe5e437dde6038b7f44c7b132905400f26b29"
|
|
42
66
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import Bottleneck from 'bottleneck';
|
|
2
|
+
import { CacheModule, Module } from '@nestjs/common';
|
|
3
|
+
import { ExportRunner } from './export.command';
|
|
4
|
+
import { ConfigService } from './services/config.service';
|
|
5
|
+
import { CarService } from './services/car.service';
|
|
6
|
+
import { RequestService } from './services/request.service';
|
|
7
|
+
import { MappingService } from './services/mapping.service';
|
|
8
|
+
import { UserService } from './services/user.service';
|
|
9
|
+
import { InputQuestions } from './input.questions';
|
|
10
|
+
import { HttpModule } from '@nestjs/axios';
|
|
11
|
+
import { LoaderService } from './services/loader.service';
|
|
12
|
+
import { RulesService } from './services/rules.service';
|
|
13
|
+
import { MarketingImagesService } from './services/marketing-images.service';
|
|
14
|
+
|
|
15
|
+
@Module({
|
|
16
|
+
imports: [CacheModule.register(), HttpModule],
|
|
17
|
+
providers: [
|
|
18
|
+
InputQuestions,
|
|
19
|
+
ExportRunner,
|
|
20
|
+
ConfigService,
|
|
21
|
+
RequestService,
|
|
22
|
+
CarService,
|
|
23
|
+
MappingService,
|
|
24
|
+
UserService,
|
|
25
|
+
LoaderService,
|
|
26
|
+
RulesService,
|
|
27
|
+
MarketingImagesService,
|
|
28
|
+
{
|
|
29
|
+
provide: Bottleneck,
|
|
30
|
+
useValue: new Bottleneck({ maxConcurrent: 10 }),
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class As24Config extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = 'resources/as24-export';
|
|
8
|
+
this.dealersList = params.dealers.split(',');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { indexOf } from 'lodash';
|
|
2
|
+
import { Params } from '../interfaces/params.interface';
|
|
3
|
+
import { Config } from './config';
|
|
4
|
+
|
|
5
|
+
export class Auto24Config extends Config {
|
|
6
|
+
constructor(params: Params) {
|
|
7
|
+
super(params);
|
|
8
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
9
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
10
|
+
this.dealersList = this.getDealersList(params.dealers);
|
|
11
|
+
this.outputFiles = [
|
|
12
|
+
'api_export_cars_GERMAN.xml',
|
|
13
|
+
'api_export_moto_GERMAN.xml',
|
|
14
|
+
'api_export_nfz_GERMAN.xml',
|
|
15
|
+
'api_export_womo_GERMAN.xml',
|
|
16
|
+
'autode.tar.gz',
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private getDealersList(dealers: string): string[] {
|
|
21
|
+
if (dealers) {
|
|
22
|
+
if (indexOf(dealers, ',') !== -1) {
|
|
23
|
+
return dealers.split(',').map((dealerId: string) => dealerId.trim());
|
|
24
|
+
}
|
|
25
|
+
return [dealers];
|
|
26
|
+
}
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class AutoboerseConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.campaign = 'Autoboerse';
|
|
8
|
+
this.pathesConfig.localConvertedDirectory = 'resources/autoboerse-export';
|
|
9
|
+
this.imageUrl = `https://images.${this.url}/carimage`;
|
|
10
|
+
this.downloadImages = true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class AutouncleConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
this.fileName = 'export_cars_autouncle.json';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class ByOwnerConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
this.fileName = `owner_${this.ownerId}_cars.csv`;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Environment } from '../enums/environment.enum';
|
|
2
|
+
import { ExportType } from '../enums/export-type.enum';
|
|
3
|
+
import { Params } from '../interfaces/params.interface';
|
|
4
|
+
|
|
5
|
+
export class Config {
|
|
6
|
+
carDetailsUrl: string;
|
|
7
|
+
apikey: string;
|
|
8
|
+
campaign: string;
|
|
9
|
+
fileName: string;
|
|
10
|
+
userActionsUrl: string;
|
|
11
|
+
upaUrl: string;
|
|
12
|
+
imboUrl: string;
|
|
13
|
+
imageUrl: string;
|
|
14
|
+
isNewCar: boolean;
|
|
15
|
+
isCriteo: boolean;
|
|
16
|
+
criteoId: number;
|
|
17
|
+
exportType: ExportType;
|
|
18
|
+
url: string;
|
|
19
|
+
input: {
|
|
20
|
+
stringIN: string;
|
|
21
|
+
numberIN: string;
|
|
22
|
+
dateIN: string;
|
|
23
|
+
};
|
|
24
|
+
pathesConfig: {
|
|
25
|
+
localDirectory: string;
|
|
26
|
+
localConvertedDirectory: string;
|
|
27
|
+
remoteDirectory: string;
|
|
28
|
+
baseFileName: string;
|
|
29
|
+
};
|
|
30
|
+
dealersList: string[];
|
|
31
|
+
outputFiles: string[];
|
|
32
|
+
cpc: string;
|
|
33
|
+
ownerId: string;
|
|
34
|
+
downloadImages: boolean;
|
|
35
|
+
|
|
36
|
+
protected environmentConfig = {
|
|
37
|
+
[Environment.LOCAL]: {
|
|
38
|
+
url: 'autode-dev.de',
|
|
39
|
+
criteoId: 12,
|
|
40
|
+
localConvertedDirectory: 'resources/csv_dev',
|
|
41
|
+
remoteDirectory: 'import_dev',
|
|
42
|
+
imageUrl: 'https://images.autode-dev.de/cache_test',
|
|
43
|
+
},
|
|
44
|
+
[Environment.DEVELOP]: {
|
|
45
|
+
url: 'autode-dev.de',
|
|
46
|
+
criteoId: 12,
|
|
47
|
+
localConvertedDirectory: 'resources/csv_dev',
|
|
48
|
+
remoteDirectory: 'import_dev',
|
|
49
|
+
imageUrl: 'https://images.autode-dev.de/cache_test',
|
|
50
|
+
},
|
|
51
|
+
[Environment.PRODUCTION]: {
|
|
52
|
+
url: 'auto.de',
|
|
53
|
+
criteoId: 3,
|
|
54
|
+
localConvertedDirectory: 'resources/csv_prod',
|
|
55
|
+
remoteDirectory: 'import',
|
|
56
|
+
imageUrl: 'https://images.auto.de/generated_images',
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
constructor(params: Params) {
|
|
61
|
+
this.carDetailsUrl = params.carDetailsUrl;
|
|
62
|
+
this.apikey = params.apikey;
|
|
63
|
+
this.isNewCar = params.isNewCar;
|
|
64
|
+
this.isCriteo = params.isCriteo;
|
|
65
|
+
this.exportType = params.exportType;
|
|
66
|
+
this.cpc = params.cpc;
|
|
67
|
+
this.ownerId = params.ownerId;
|
|
68
|
+
this.fileName = params.fileName || `${params.environment}_${params.exportType}`;
|
|
69
|
+
this.criteoId = this.environmentConfig[params.environment].criteoId;
|
|
70
|
+
this.url = this.environmentConfig[params.environment].url;
|
|
71
|
+
this.userActionsUrl = `https://www.${this.url}/service/user-actions`;
|
|
72
|
+
this.imboUrl = `https://www.${this.url}/service/image-imbo`;
|
|
73
|
+
this.imageUrl = `https://images.${this.url}`;
|
|
74
|
+
this.upaUrl = `https://www.${this.url}/service/user-profile-admin`;
|
|
75
|
+
this.input = {
|
|
76
|
+
stringIN: params.String,
|
|
77
|
+
numberIN: params.Number,
|
|
78
|
+
dateIN: params.Date,
|
|
79
|
+
};
|
|
80
|
+
this.pathesConfig = {
|
|
81
|
+
localDirectory: 'resources/cars-export',
|
|
82
|
+
localConvertedDirectory: 'resources/default-export',
|
|
83
|
+
remoteDirectory: '',
|
|
84
|
+
baseFileName: 'cars',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class EautoConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.campaign = 'eauto';
|
|
8
|
+
this.pathesConfig.localConvertedDirectory = 'resources/eauto-export';
|
|
9
|
+
this.fileName = '416';
|
|
10
|
+
this.imageUrl = `https://images.${this.url}/carimage`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class FbConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
this.imageUrl = this.environmentConfig[params.environment].imageUrl;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class GoogleConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class MarktdeConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.campaign = 'marktde';
|
|
8
|
+
this.pathesConfig.localConvertedDirectory = 'resources/marktde-export';
|
|
9
|
+
this.imageUrl = `https://images.${this.url}/carimage`;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class MeinstadtConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
this.outputFiles = ['api_export_cars_meinstadt.json', 'api_export_cars_meinstadt.zip'];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class OoyyoConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.pathesConfig.localConvertedDirectory = this.environmentConfig[params.environment].localConvertedDirectory;
|
|
8
|
+
this.pathesConfig.remoteDirectory = this.environmentConfig[params.environment].remoteDirectory;
|
|
9
|
+
this.outputFiles = ['api_export_cars_ooyyo.xml', 'autode-ooyyo.tar.gz'];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Params } from '../interfaces/params.interface';
|
|
2
|
+
import { Config } from './config';
|
|
3
|
+
|
|
4
|
+
export class YescarConfig extends Config {
|
|
5
|
+
constructor(params: Params) {
|
|
6
|
+
super(params);
|
|
7
|
+
this.campaign = 'YesAuto';
|
|
8
|
+
this.pathesConfig.localConvertedDirectory = 'resources/yescar-export';
|
|
9
|
+
this.imageUrl = `https://images.${this.url}/carimage`;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const FB_MAX_TRIM_LENGTH = 50;
|
|
2
|
+
export const FB_MAX_IMAGE_COUNT_FOR_DEAFULT = 47;
|
|
3
|
+
export const FB_MIN_MILEAGES = 900;
|
|
4
|
+
export const DEFAULT_ZIP = '04109';
|
|
5
|
+
export const DEFAULT_CITY = 'Leipzig';
|
|
6
|
+
export const DEFAULT_ADDR1 = 'Thomaskirchhof 20';
|
|
7
|
+
export const TIMESTAMP_FIRST_YEAR = 1970;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export enum ExportType {
|
|
2
|
+
YESCAR = 'yescar',
|
|
3
|
+
MARKTDE = 'marktde',
|
|
4
|
+
EAUTO = 'eauto',
|
|
5
|
+
AUTOBOERSE = 'autoboerse',
|
|
6
|
+
GOOGLE = 'google',
|
|
7
|
+
FB = 'fb',
|
|
8
|
+
AUTO24 = 'auto24',
|
|
9
|
+
OOYYO = 'ooyyo',
|
|
10
|
+
MEINSTADT = 'meinstadt',
|
|
11
|
+
BY_OWNER = 'by-owner',
|
|
12
|
+
AUTOUNCLE = 'autouncle',
|
|
13
|
+
AS24 = 'as24',
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Command, CommandRunner, InquirerService } from 'nest-commander';
|
|
2
|
+
import { ConfigService } from './services/config.service';
|
|
3
|
+
import { Input } from './interfaces/input.interface';
|
|
4
|
+
import { Logger } from '@nestjs/common';
|
|
5
|
+
import { exportSchema } from './export.schema';
|
|
6
|
+
import { ModuleRef } from '@nestjs/core';
|
|
7
|
+
import { Exporter } from './interfaces/exporter.interface';
|
|
8
|
+
|
|
9
|
+
@Command({
|
|
10
|
+
name: 'export',
|
|
11
|
+
options: { isDefault: true },
|
|
12
|
+
})
|
|
13
|
+
export class ExportRunner extends CommandRunner {
|
|
14
|
+
private readonly logger = new Logger(ExportRunner.name);
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
private readonly inquirer: InquirerService,
|
|
18
|
+
private configService: ConfigService,
|
|
19
|
+
private moduleRef: ModuleRef,
|
|
20
|
+
) {
|
|
21
|
+
super();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async run(): Promise<void> {
|
|
25
|
+
const input = (await this.inquirer.ask<{ input: Input }>('input-questions', undefined)).input;
|
|
26
|
+
|
|
27
|
+
this.logger.log(`Running job: ${input.id} - ${JSON.stringify(input)}\n`);
|
|
28
|
+
|
|
29
|
+
this.configService.config = new exportSchema[input.params.exportType].config(input.params);
|
|
30
|
+
const exporter = await this.moduleRef.create<Exporter>(exportSchema[input.params.exportType].exporter);
|
|
31
|
+
await exporter.export();
|
|
32
|
+
|
|
33
|
+
this.logger.log({ complete: 1, code: 0 });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Auto24Config } from './config/auto24.config';
|
|
2
|
+
import { AutoboerseConfig } from './config/autoboerse.config';
|
|
3
|
+
import { AutouncleConfig } from './config/autouncle.config';
|
|
4
|
+
import { ByOwnerConfig } from './config/by-owner.config';
|
|
5
|
+
import { EautoConfig } from './config/eauto.config';
|
|
6
|
+
import { FbConfig } from './config/fb.config';
|
|
7
|
+
import { GoogleConfig } from './config/google.config';
|
|
8
|
+
import { MarktdeConfig } from './config/marktde.config';
|
|
9
|
+
import { MeinstadtConfig } from './config/meinstadt.config';
|
|
10
|
+
import { OoyyoConfig } from './config/ooyyo.config';
|
|
11
|
+
import { YescarConfig } from './config/yescar.config';
|
|
12
|
+
import { ExportType } from './enums/export-type.enum';
|
|
13
|
+
import { Auto24Exporter } from './exporters/auto24.exporter';
|
|
14
|
+
import { AutouncleExporter } from './exporters/autouncle.exporter';
|
|
15
|
+
import { ByOwnerExporter } from './exporters/by-owner.exporter';
|
|
16
|
+
import { FbExporter } from './exporters/fb.exporter';
|
|
17
|
+
import { GoogleExporter } from './exporters/google.exporter';
|
|
18
|
+
import { MeinstadtExporter } from './exporters/meinstadt.exporter';
|
|
19
|
+
import { MobileExporter } from './exporters/mobile.exporter';
|
|
20
|
+
import { OoyyoExporter } from './exporters/ooyyo.exporter';
|
|
21
|
+
|
|
22
|
+
export const exportSchema = {
|
|
23
|
+
[ExportType.EAUTO]: {
|
|
24
|
+
config: EautoConfig,
|
|
25
|
+
exporter: MobileExporter,
|
|
26
|
+
},
|
|
27
|
+
[ExportType.YESCAR]: {
|
|
28
|
+
config: YescarConfig,
|
|
29
|
+
exporter: MobileExporter,
|
|
30
|
+
},
|
|
31
|
+
[ExportType.MARKTDE]: {
|
|
32
|
+
config: MarktdeConfig,
|
|
33
|
+
exporter: MobileExporter,
|
|
34
|
+
},
|
|
35
|
+
[ExportType.AUTOBOERSE]: {
|
|
36
|
+
config: AutoboerseConfig,
|
|
37
|
+
exporter: MobileExporter,
|
|
38
|
+
},
|
|
39
|
+
[ExportType.GOOGLE]: {
|
|
40
|
+
config: GoogleConfig,
|
|
41
|
+
exporter: GoogleExporter,
|
|
42
|
+
},
|
|
43
|
+
[ExportType.FB]: {
|
|
44
|
+
config: FbConfig,
|
|
45
|
+
exporter: FbExporter,
|
|
46
|
+
},
|
|
47
|
+
[ExportType.AUTO24]: {
|
|
48
|
+
config: Auto24Config,
|
|
49
|
+
exporter: Auto24Exporter,
|
|
50
|
+
},
|
|
51
|
+
[ExportType.OOYYO]: {
|
|
52
|
+
config: OoyyoConfig,
|
|
53
|
+
exporter: OoyyoExporter,
|
|
54
|
+
},
|
|
55
|
+
[ExportType.MEINSTADT]: {
|
|
56
|
+
config: MeinstadtConfig,
|
|
57
|
+
exporter: MeinstadtExporter,
|
|
58
|
+
},
|
|
59
|
+
[ExportType.BY_OWNER]: {
|
|
60
|
+
config: ByOwnerConfig,
|
|
61
|
+
exporter: ByOwnerExporter,
|
|
62
|
+
},
|
|
63
|
+
[ExportType.AUTOUNCLE]: {
|
|
64
|
+
config: AutouncleConfig,
|
|
65
|
+
exporter: AutouncleExporter,
|
|
66
|
+
},
|
|
67
|
+
};
|