@bytebrand/export-cars 1.21.37 → 1.21.38

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.
@@ -39,13 +39,12 @@ let SantanderExporter = class SantanderExporter {
39
39
  await this.loaderService.process(async (chunk) => {
40
40
  chunk.data = chunk.data.filter(e => this.carService.filterCar(e, this.rulesService.rules));
41
41
  if (chunk && chunk.data) {
42
- for (const data of chunk.data) {
42
+ const filteredData = chunk.data.filter(({ car }) => !(!car.mainData.firstRegistration && car.mainData.mileage > 1000));
43
+ for (const data of filteredData) {
43
44
  const { car, images } = data;
44
- if (!(!car.mainData.firstRegistration && car.mainData.mileage > 1000)) {
45
- const transformedData = await santanderTransformer.transform(car, images);
46
- const transformedNormalizedData = await santanderTransformer.normalizeCarData(transformedData);
47
- await santanderCSVBuilder.addItem(transformedNormalizedData);
48
- }
45
+ const transformedData = await santanderTransformer.transform(car, images);
46
+ const transformedNormalizedData = await santanderTransformer.normalizeCarData(transformedData);
47
+ await santanderCSVBuilder.addItem(transformedNormalizedData);
49
48
  this.carService.counter.countCar(images);
50
49
  }
51
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"santander.exporter.js","sourceRoot":"","sources":["../../src/exporters/santander.exporter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyC;AAEzC,gEAA2D;AAI3D,0CAAqF;AAGrF,4EAAwE;AACxE,iFAA8E;AAGvE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEpB;IACA;IACA;IACA;IACA;IALT,YACS,UAAsB,EACtB,aAA4B,EAC5B,YAA0B,EAC1B,aAA4B,EAC5B,SAAoB;QAJpB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;IACzB,CAAC;IAEL,KAAK,CAAC,MAAM;QACX,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QACxD,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC;QAE3E,MAAM,+BAAa,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,+BAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,mBAAmB,GAAG,IAAI,2CAAmB,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,4CAAoB,CAAC,CAAC;QAE/E,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAuB,EAAE,EAAE;YAClE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE3F,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;gBACxB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;oBAC7B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE;wBACtE,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC1E,MAAM,yBAAyB,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;wBAC/F,MAAM,mBAAmB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;qBAC7D;oBACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBACzC;aACD;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;CACD,CAAA;AAvCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGS,qBAAU;QACP,wBAAa;QACd,uBAAY;QACX,wBAAa;QACjB,gBAAS;GANjB,iBAAiB,CAuC7B"}
1
+ {"version":3,"file":"santander.exporter.js","sourceRoot":"","sources":["../../src/exporters/santander.exporter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyC;AAEzC,gEAA2D;AAI3D,0CAAqF;AAGrF,4EAAwE;AACxE,iFAA8E;AAGvE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEpB;IACA;IACA;IACA;IACA;IALT,YACS,UAAsB,EACtB,aAA4B,EAC5B,YAA0B,EAC1B,aAA4B,EAC5B,SAAoB;QAJpB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;IACzB,CAAC;IAEL,KAAK,CAAC,MAAM;QACX,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QACxD,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC;QAE3E,MAAM,+BAAa,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,+BAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,mBAAmB,GAAG,IAAI,2CAAmB,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,4CAAoB,CAAC,CAAC;QAE/E,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAuB,EAAE,EAAE;YAClE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE3F,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;gBACxB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAA;gBACtH,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;oBAChC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;oBAC7B,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC1E,MAAM,yBAAyB,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;oBAC/F,MAAM,mBAAmB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;oBAE7D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBACzC;aACD;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;CACD,CAAA;AAvCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGS,qBAAU;QACP,wBAAa;QACd,uBAAY;QACX,wBAAa;QACjB,gBAAS;GANjB,iBAAiB,CAuC7B"}
@@ -1,9 +1,45 @@
1
+ import { ImboImageResponseInterface } from '@bytebrand/chunkable';
2
+ import { DataSchemes } from '@bytebrand/car-schema';
1
3
  import { MappingService, UserService, ImagesService } from '../services';
2
- import { MappingRules } from '../interfaces/mapping-rules.interface';
3
4
  import { ConfigService } from '../services';
4
- import { MobileTransformer } from './mobile.transformer';
5
- export declare class SantanderTransformer extends MobileTransformer {
5
+ export declare class SantanderTransformer {
6
+ private mappingService;
7
+ private userService;
8
+ private configService;
9
+ private imagesService;
10
+ private currentCar;
6
11
  constructor(mappingService: MappingService, userService: UserService, configService: ConfigService, imagesService: ImagesService);
7
- protected dateToString(fieldValue: number, rule: MappingRules): string;
8
12
  normalizeCarData(transformedCarData: unknown): Promise<any[]>;
13
+ transform(carData: DataSchemes.Car, images: ImboImageResponseInterface[]): Promise<unknown>;
14
+ private transformField;
15
+ private offerStringToString;
16
+ private customTransformers;
17
+ private getPersistentId;
18
+ private getVatDeductible;
19
+ private getWLTP;
20
+ private getEmissionClass;
21
+ private getEnergyEfficiencyClass;
22
+ private getEmissionSticker;
23
+ private getCO2;
24
+ private getNumberOfPreviousOwners;
25
+ private getUsageType;
26
+ private getVatRate;
27
+ private getCurrentSalesPrice;
28
+ private getVinCode;
29
+ private getAutodeUrl;
30
+ private getImages;
31
+ private stringToString;
32
+ private numberToString;
33
+ private booleanToString;
34
+ private selectorToSelector;
35
+ private selectorToString;
36
+ private selectorArrayToSelector;
37
+ private selectorArrayToString;
38
+ private dateToString;
39
+ private stringToMobile_model;
40
+ private numberToMobile_consumption;
41
+ private booleanToMobile_vatCalc;
42
+ private selectorToCategoryOrClass_selector;
43
+ private getGearBox;
44
+ private getMilage;
9
45
  }
@@ -10,18 +10,396 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SantanderTransformer = void 0;
13
+ const lodash_1 = require("lodash");
13
14
  const common_1 = require("@nestjs/common");
15
+ const car_description_1 = require("@bytebrand/car-description");
16
+ const cronicle_helper_1 = require("@bytebrand/cronicle-helper");
14
17
  const services_1 = require("../services");
18
+ const utils_1 = require("../utils");
15
19
  const services_2 = require("../services");
16
- const mobile_transformer_1 = require("./mobile.transformer");
20
+ const enums_1 = require("../enums");
17
21
  const vinGenerator = require('vin-generator');
18
- let SantanderTransformer = class SantanderTransformer extends mobile_transformer_1.MobileTransformer {
22
+ let SantanderTransformer = class SantanderTransformer {
23
+ mappingService;
24
+ userService;
25
+ configService;
26
+ imagesService;
27
+ currentCar;
19
28
  constructor(mappingService, userService, configService, imagesService) {
20
- super(mappingService, userService, configService, imagesService);
29
+ this.mappingService = mappingService;
30
+ this.userService = userService;
31
+ this.configService = configService;
32
+ this.imagesService = imagesService;
33
+ }
34
+ async normalizeCarData(transformedCarData) {
35
+ const data = transformedCarData;
36
+ const maxKey = Math.max(...Object.keys(data).map(key => parseInt(key, 10)));
37
+ const outputArray = [];
38
+ for (let i = 0; i <= maxKey; i++) {
39
+ if (data.hasOwnProperty(i.toString())) {
40
+ outputArray.push(data[i.toString()]);
41
+ }
42
+ else {
43
+ outputArray.push('');
44
+ }
45
+ }
46
+ return outputArray;
47
+ }
48
+ async transform(carData, images) {
49
+ this.currentCar = carData;
50
+ const transformedCarData = {};
51
+ const rules = await this.mappingService.getRules();
52
+ for (const rule of rules) {
53
+ if (rule.custom === 'yes') {
54
+ const transformedField = await this.customTransformers(rule, carData, images);
55
+ if (transformedField) {
56
+ (0, lodash_1.set)(transformedCarData, `${rule.importField}`, transformedField);
57
+ }
58
+ }
59
+ else {
60
+ const fieldValue = (0, lodash_1.get)(carData, `${rule.autodeField}`, null);
61
+ if (rule.autodeField === 'driveSuspension.gearbox' || rule.autodeField === 'mainData.mileage') {
62
+ (0, lodash_1.set)(transformedCarData, `${rule.importField}`, await this.customTransformers(rule, carData, images));
63
+ }
64
+ else {
65
+ if (!(0, lodash_1.isNil)(fieldValue)) {
66
+ const transformedField = await this.transformField(fieldValue, rule);
67
+ if (!(0, lodash_1.isNil)(transformedField)) {
68
+ (0, lodash_1.set)(transformedCarData, `${rule.importField}`, transformedField);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ (0, lodash_1.set)(transformedCarData, 150, (0, lodash_1.toString)((0, lodash_1.get)(carData, 'rate.monthlyInstallment', '')));
75
+ (0, lodash_1.set)(transformedCarData, 293, (0, lodash_1.toString)((0, lodash_1.get)(carData, 'leasing.monthlyInstallment', '')));
76
+ (0, lodash_1.set)(transformedCarData, 1, (0, lodash_1.get)(carData, 'metaData.vehicleId', null));
77
+ if (this.configService.config.campaign === 'eauto' && carData.offer.ftpFolder === 'auto_de_eautos') {
78
+ (0, lodash_1.set)(transformedCarData, 12, (0, lodash_1.get)(carData, 'offer.internalNumber', null));
79
+ }
80
+ return transformedCarData;
81
+ }
82
+ async transformField(fieldValue, rule) {
83
+ const transformProcedureName = `${rule.autodeFieldType}To${(0, lodash_1.upperFirst)(rule.importFieldType)}`;
84
+ switch (transformProcedureName) {
85
+ case 'stringToString': {
86
+ if (rule.autodeField === 'offer.offerDescription') {
87
+ return await this.offerStringToString();
88
+ }
89
+ return this.stringToString(fieldValue);
90
+ }
91
+ case 'integerToString': {
92
+ return this.numberToString(fieldValue);
93
+ }
94
+ case 'numberToString': {
95
+ return this.numberToString(fieldValue);
96
+ }
97
+ case 'booleanToString': {
98
+ return this.booleanToString(fieldValue);
99
+ }
100
+ case 'selectorToSelector': {
101
+ return this.selectorToSelector(fieldValue, rule);
102
+ }
103
+ case 'selectorToString': {
104
+ return this.selectorToString(fieldValue, rule);
105
+ }
106
+ case 'selector[]ToSelector': {
107
+ return this.selectorArrayToSelector(fieldValue, rule);
108
+ }
109
+ case 'selector[]ToString': {
110
+ return this.selectorArrayToString(fieldValue, rule);
111
+ }
112
+ case 'dateToString': {
113
+ return this.dateToString(fieldValue, rule);
114
+ }
115
+ case 'dateToMobile_delivery': {
116
+ return this.dateToString(fieldValue, rule);
117
+ }
118
+ case 'stringToMobile_model': {
119
+ return this.stringToMobile_model(fieldValue);
120
+ }
121
+ case 'numberToMobile_consumption': {
122
+ return this.numberToMobile_consumption(fieldValue);
123
+ }
124
+ case 'booleanToMobile_vatCalc': {
125
+ return this.booleanToMobile_vatCalc(fieldValue);
126
+ }
127
+ case 'selectorToMobile_extColor_selector': {
128
+ return this.selectorToSelector(fieldValue, rule);
129
+ }
130
+ case 'selectorToCategoryOrClass_selector': {
131
+ return this.selectorToCategoryOrClass_selector(fieldValue);
132
+ }
133
+ default:
134
+ cronicle_helper_1.LoggerService.log(`missing transform: ${transformProcedureName}`);
135
+ break;
136
+ }
137
+ }
138
+ async offerStringToString() {
139
+ const dealerId = (0, lodash_1.get)(this.currentCar, 'metaData.ownerId');
140
+ const descriptionSchema = await this.userService.getDefaultSummaryByDealerId(dealerId);
141
+ const descriptionBuilder = car_description_1.CarDescriptionFactory.create(car_description_1.DescriptionTypeEnum.Mobile, this.currentCar);
142
+ return descriptionBuilder.transform(descriptionSchema);
143
+ }
144
+ async customTransformers(rule, car, images) {
145
+ switch (rule.autodeField) {
146
+ case 'image': {
147
+ return this.getImages(car, images);
148
+ }
149
+ case 'autodeUrl': {
150
+ return this.getAutodeUrl(car);
151
+ }
152
+ case 'persistentId': {
153
+ return this.getPersistentId(car);
154
+ }
155
+ case 'price.vatDeductible': {
156
+ return this.getVatDeductible(car);
157
+ }
158
+ case 'mainData.numberOfPreviousOwners': {
159
+ return this.getNumberOfPreviousOwners(car);
160
+ }
161
+ case 'mainData.condition': {
162
+ return this.getUsageType(car);
163
+ }
164
+ case 'price.vatRate': {
165
+ return this.getVatRate(car);
166
+ }
167
+ case 'price.currentSalesPrice': {
168
+ return this.getCurrentSalesPrice(car);
169
+ }
170
+ case 'driveSuspension.gearbox': {
171
+ return this.getGearBox(car);
172
+ }
173
+ case 'mainData.mileage': {
174
+ return this.getMilage(car);
175
+ }
176
+ case 'consumption.consumptionPowerCombined': {
177
+ return this.getWLTP(car);
178
+ }
179
+ case 'environmentEmissions.emissionClass': {
180
+ return this.getEmissionClass(car);
181
+ }
182
+ case 'environmentEmissions.energyEfficiencyClass': {
183
+ return this.getEnergyEfficiencyClass(car);
184
+ }
185
+ case 'environmentEmissions.emissionSticker': {
186
+ return this.getEmissionSticker(car);
187
+ }
188
+ case 'environmentEmissions.co2': {
189
+ return this.getCO2(car);
190
+ }
191
+ case 'metaData.vin': {
192
+ return this.getVinCode(car);
193
+ }
194
+ default:
195
+ return '';
196
+ }
197
+ }
198
+ async getPersistentId(car) {
199
+ switch (this.configService.config.campaign) {
200
+ case enums_1.ExportType.EAUTO:
201
+ if (car.offer.ftpFolder === 'auto_de_eautos') {
202
+ const dealers = await this.mappingService.getDealersMapping();
203
+ const dealerId = dealers.find(dealer => dealer.firebaseUserId === car.metaData.ownerId)?.dealerId;
204
+ if (dealerId) {
205
+ return dealerId;
206
+ }
207
+ }
208
+ return '416';
209
+ case enums_1.ExportType.MARKTDE:
210
+ return '04109003';
211
+ case enums_1.ExportType.EVIUM:
212
+ return '10022';
213
+ default:
214
+ throw new Error(`Wrong export type ${this.configService.config.campaign}`);
215
+ }
216
+ }
217
+ getVatDeductible(car) {
218
+ return this.booleanToString(!(0, lodash_1.get)(car, 'price.vatDeductible', false));
219
+ }
220
+ getWLTP(car) {
221
+ const envkvCompliant = (0, lodash_1.get)(car, 'consumption.envkvCompliant');
222
+ const hybridPlagin = (0, lodash_1.get)(car, 'engineData.hybridPlugin');
223
+ if (envkvCompliant && hybridPlagin) {
224
+ const powerCombined = (0, lodash_1.get)(car, 'consumption.consumptionPowerCombined');
225
+ return String(powerCombined);
226
+ }
227
+ }
228
+ getEmissionClass(car) {
229
+ const emissionClass = (0, lodash_1.get)(car, 'environmentEmissions.emissionClass', 'selector_unknown');
230
+ switch (emissionClass) {
231
+ case 'selector_emissionClass_euro1': {
232
+ return '1';
233
+ }
234
+ case 'selector_emissionClass_euro2': {
235
+ return '2';
236
+ }
237
+ case 'selector_emissionClass_euro3': {
238
+ return '3';
239
+ }
240
+ case 'selector_emissionClass_euro4':
241
+ case 'selector_unknown': {
242
+ return '4';
243
+ }
244
+ case 'selector_emissionClass_euro5': {
245
+ return '5';
246
+ }
247
+ case 'selector_emissionClass_euro6': {
248
+ return '6';
249
+ }
250
+ case 'selector_emissionClass_euro6b': {
251
+ return '6b';
252
+ }
253
+ case 'selector_emissionClass_euro6c': {
254
+ return '6c';
255
+ }
256
+ case 'selector_emissionClass_euro6d': {
257
+ return '6d';
258
+ }
259
+ case 'selector_emissionClass_euro6d_temp': {
260
+ return '6d-TEMP';
261
+ }
262
+ }
263
+ }
264
+ getEnergyEfficiencyClass(car) {
265
+ const energyEfficiencyClass = (0, lodash_1.get)(car, 'environmentEmissions.energyEfficiencyClass', 'selector_unknown');
266
+ switch (energyEfficiencyClass) {
267
+ case 'selector_energyEfficiencyClass_appp': {
268
+ return 'A+++';
269
+ }
270
+ case 'selector_energyEfficiencyClass_app': {
271
+ return 'A++';
272
+ }
273
+ case 'selector_energyEfficiencyClass_ap': {
274
+ return 'A+';
275
+ }
276
+ case 'selector_unknown':
277
+ case null: {
278
+ return 'C';
279
+ }
280
+ default: {
281
+ return energyEfficiencyClass.slice(-1).toUpperCase();
282
+ }
283
+ }
284
+ }
285
+ getEmissionSticker(car) {
286
+ const emissionSticker = (0, lodash_1.get)(car, 'environmentEmissions.emissionSticker', 'selector_unknown');
287
+ switch (emissionSticker) {
288
+ case 'selector_emissionSticker_no': {
289
+ return '1';
290
+ }
291
+ case 'selector_emissionSticker_red': {
292
+ return '2';
293
+ }
294
+ case 'selector_emissionSticker_yellow':
295
+ case 'selector_unknown': {
296
+ return '3';
297
+ }
298
+ case 'selector_emissionSticker_green': {
299
+ return '4';
300
+ }
301
+ }
302
+ }
303
+ getCO2(car) {
304
+ const consumptionFuel = (0, lodash_1.get)(car, 'consumption.fuel', 'selector_unknown');
305
+ if (consumptionFuel === 'selector_fuel_electrical') {
306
+ return '0';
307
+ }
308
+ return String((0, lodash_1.get)(car, 'environmentEmissions.co2'));
309
+ }
310
+ getNumberOfPreviousOwners(car) {
311
+ const usageType = this.getUsageType(car);
312
+ if (usageType === '1' || !(0, lodash_1.get)(car, 'mainData.numberOfPreviousOwners')) {
313
+ return '0';
314
+ }
315
+ return String((0, lodash_1.get)(car, 'mainData.numberOfPreviousOwners'));
316
+ }
317
+ getUsageType(car) {
318
+ const firstRegistration = (0, lodash_1.get)(car, 'mainData.firstRegistration');
319
+ if (firstRegistration) {
320
+ return '0';
321
+ }
322
+ return '1';
323
+ }
324
+ getVatRate(car) {
325
+ const isVatDeductible = (0, lodash_1.get)(car, 'price.vatDeductible', false);
326
+ if (isVatDeductible) {
327
+ return String(car.price.vatRate || 19);
328
+ }
329
+ return '0';
330
+ }
331
+ getCurrentSalesPrice(car) {
332
+ const vat = (0, lodash_1.get)(car, 'price.vatDeductible', false);
333
+ const currentSalesPrice = (0, lodash_1.get)(car, 'price.currentSalesPrice');
334
+ if (vat) {
335
+ const vatRate = (0, lodash_1.get)(car, 'price.vatRate', 19);
336
+ const price = (currentSalesPrice * 100) / (100 + vatRate);
337
+ return String(price.toFixed(2));
338
+ }
339
+ return String(currentSalesPrice);
340
+ }
341
+ getVinCode(car) {
342
+ const vin = (0, lodash_1.get)(car, 'metaData.vin', '');
343
+ if (this.configService.config.campaign === 'marktde' && !vin) {
344
+ const fakeVin = (0, lodash_1.get)(car, 'marketing.fakeVIN', '');
345
+ if (!(0, lodash_1.isEmpty)(fakeVin)) {
346
+ return fakeVin;
347
+ }
348
+ return vinGenerator.generateVin();
349
+ }
350
+ return vin;
351
+ }
352
+ getAutodeUrl(car) {
353
+ return `https://www.${this.configService.config.domain}${car._id}?source=classifieds&medium=listing&campaign=${this.configService.config.campaign}`;
354
+ }
355
+ async getImages(car, images) {
356
+ const transformedImages = await this.imagesService.getImages(car, images, this.configService.config.imageType, false);
357
+ if (this.configService.config.campaign == enums_1.ExportType.EVIUM)
358
+ return null;
359
+ if ((0, utils_1.isNotEmptyArray)(transformedImages)) {
360
+ return transformedImages.map((el) => el).join(';');
361
+ }
362
+ return null;
363
+ }
364
+ stringToString(fieldValue) {
365
+ return (0, lodash_1.isEmpty)(fieldValue) ? null : fieldValue;
366
+ }
367
+ numberToString(fieldValue) {
368
+ return String(fieldValue);
369
+ }
370
+ booleanToString(fieldValue) {
371
+ return String(Number(fieldValue));
372
+ }
373
+ selectorToSelector(fieldValue, rule) {
374
+ if (fieldValue === 'selector_unknown' && rule.autodeField === 'heatingCooling.climatisation') {
375
+ return '';
376
+ }
377
+ if (fieldValue === 'selector_unknown' || fieldValue === 'selector_interiorColor_rainbow') {
378
+ return '';
379
+ }
380
+ const pairs = rule.selectors.map(p => p.split(':').reverse());
381
+ const [match] = pairs.filter(p => p[0] === fieldValue);
382
+ if (match) {
383
+ return match[1];
384
+ }
385
+ }
386
+ selectorToString(fieldValue, rule) {
387
+ return this.booleanToString(fieldValue === rule.autodeFieldSelector);
388
+ }
389
+ selectorArrayToSelector(fieldValue, rule) {
390
+ const lastVal = fieldValue[fieldValue.length - 1];
391
+ const match = this.selectorToSelector(lastVal, rule);
392
+ if (match && match !== 'default') {
393
+ return match;
394
+ }
395
+ }
396
+ selectorArrayToString(fieldValue, rule) {
397
+ const match = fieldValue.includes(rule.autodeFieldSelector);
398
+ return this.booleanToString(match);
21
399
  }
22
400
  dateToString(fieldValue, rule) {
23
401
  const date = new Date(fieldValue * 1000);
24
- if (rule.importField === "['8']") {
402
+ if (["['8']"].includes(rule.importField)) {
25
403
  if (!fieldValue) {
26
404
  const now = new Date();
27
405
  const month = String(now.getMonth() + 1);
@@ -29,24 +407,61 @@ let SantanderTransformer = class SantanderTransformer extends mobile_transformer
29
407
  return `${month}.${year}`;
30
408
  }
31
409
  }
32
- if (["['6']", "['7']", "['8']"].includes(rule.importField)) {
410
+ if (["['6']", "['7']"].includes(rule.importField)) {
33
411
  return `${date.getMonth() + 1}.${date.getFullYear()}`;
34
412
  }
35
413
  return `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`;
36
414
  }
37
- async normalizeCarData(transformedCarData) {
38
- const data = transformedCarData;
39
- const maxKey = Math.max(...Object.keys(data).map(key => parseInt(key, 10)));
40
- const outputArray = [];
41
- for (let i = 0; i <= maxKey; i++) {
42
- if (data.hasOwnProperty(i.toString())) {
43
- outputArray.push(data[i.toString()]);
44
- }
45
- else {
46
- outputArray.push('');
47
- }
415
+ stringToMobile_model(fieldValue) {
416
+ const model = fieldValue;
417
+ const subModel = (0, lodash_1.get)(this.currentCar, 'mainData.subModel');
418
+ return subModel && subModel !== model ? `${model} ${subModel}` : model;
419
+ }
420
+ numberToMobile_consumption(fieldValue) {
421
+ const consumption = this.numberToString(fieldValue);
422
+ return consumption.replace('.', ',');
423
+ }
424
+ booleanToMobile_vatCalc(fieldValue) {
425
+ return this.booleanToString(fieldValue);
426
+ }
427
+ selectorToCategoryOrClass_selector(fieldValue) {
428
+ const rules = {
429
+ selector_category_convertible: 'Cabrio',
430
+ selector_category_combi: 'Kombi',
431
+ selector_category_sedan: 'Limousine',
432
+ selector_category_suv: 'OffRoad',
433
+ selector_category_compact: 'SmallCar',
434
+ selector_category_coupe: 'SportsCar',
435
+ selector_category_van: 'Van',
436
+ selector_category_minibus: 'Van',
437
+ selector_category_transporter: 'OtherCar',
438
+ selector_unknown: 'OtherCar',
439
+ };
440
+ const found = rules[fieldValue];
441
+ if (found) {
442
+ return `Car.${found}`;
48
443
  }
49
- return outputArray;
444
+ else {
445
+ cronicle_helper_1.LoggerService.log(`Missing mapping for: ${fieldValue}`);
446
+ return 'Car.OtherCar';
447
+ }
448
+ }
449
+ getGearBox(car) {
450
+ const rules = {
451
+ selector_gearbox_manualShift: '1',
452
+ selector_gearbox_semiAutomatic: '2',
453
+ selector_gearbox_automatic: '3',
454
+ selector_unknown: '0',
455
+ };
456
+ const autodeGearboxSelector = (0, lodash_1.get)(car, 'driveSuspension.gearbox', 'selector_unknown');
457
+ return rules[autodeGearboxSelector];
458
+ }
459
+ getMilage(car) {
460
+ const mileage = car.mainData.mileage;
461
+ if (mileage <= 0) {
462
+ return '0';
463
+ }
464
+ return mileage.toString();
50
465
  }
51
466
  };
52
467
  exports.SantanderTransformer = SantanderTransformer;
@@ -1 +1 @@
1
- {"version":3,"file":"santander.transformer.js","sourceRoot":"","sources":["../../src/transformers/santander.transformer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2CAA4C;AAO5C,0CAAyE;AAGzE,0CAA4C;AAE5C,6DAAyD;AAGzD,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAGvC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sCAAiB;IAC1D,YACC,cAA8B,EAC9B,WAAwB,EACxB,aAA4B,EAC5B,aAA4B;QAE5B,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAES,YAAY,CAAC,UAAkB,EAAE,IAAkB;QAC5D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,IAAI,CAAC,UAAU,EAAE;gBAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;gBACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC/B,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;aAC1B;SACD;QACD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC3D,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;SACtD;QACD,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,kBAA2B;QACjD,MAAM,IAAI,GAAG,kBAAmD,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACtC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACN,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACrB;SACD;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;CAED,CAAA;AA3CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGK,yBAAc;QACjB,sBAAW;QACT,wBAAa;QACb,wBAAa;GALjB,oBAAoB,CA2ChC"}
1
+ {"version":3,"file":"santander.transformer.js","sourceRoot":"","sources":["../../src/transformers/santander.transformer.ts"],"names":[],"mappings":"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"}