@bytebrand/export-cars 1.21.16 → 1.21.19
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/dist/formats/santander-csv.builder.js +6 -3
- package/dist/formats/santander-csv.builder.js.map +1 -1
- package/dist/interfaces/export-item.interface.d.ts +20 -1
- package/dist/transformers/google.transformer.d.ts +10 -2
- package/dist/transformers/google.transformer.js +143 -9
- package/dist/transformers/google.transformer.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/formats/santander-csv.builder.ts +6 -3
- package/src/interfaces/export-item.interface.ts +33 -12
- package/src/transformers/google.transformer.ts +165 -9
|
@@ -7,12 +7,15 @@ class SantanderCSVBuilder extends cronicle_helper_1.XMLBuilderBase {
|
|
|
7
7
|
}
|
|
8
8
|
async addItem(car) {
|
|
9
9
|
let values = Object.values(car).map(value => {
|
|
10
|
-
if (typeof value === 'string'
|
|
11
|
-
|
|
10
|
+
if (typeof value === 'string') {
|
|
11
|
+
if (value.includes(','))
|
|
12
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
13
|
+
if (value.includes(';'))
|
|
14
|
+
return `"${value}"`;
|
|
12
15
|
}
|
|
13
16
|
return value;
|
|
14
17
|
});
|
|
15
|
-
await this.write(values.join('
|
|
18
|
+
await this.write(values.join(';') + '\n');
|
|
16
19
|
}
|
|
17
20
|
async buildEnd() {
|
|
18
21
|
await this.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"santander-csv.builder.js","sourceRoot":"","sources":["../../src/formats/santander-csv.builder.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAE5D,MAAa,mBAAoB,SAAQ,gCAAc;IACtD,KAAK,CAAC,UAAU;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACzB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"santander-csv.builder.js","sourceRoot":"","sources":["../../src/formats/santander-csv.builder.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAE5D,MAAa,mBAAoB,SAAQ,gCAAc;IACtD,KAAK,CAAC,UAAU;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACzB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACtB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;gBACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACtB,OAAO,IAAI,KAAK,GAAG,CAAC;aACrB;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;CACD;AApBD,kDAoBC"}
|
|
@@ -151,7 +151,26 @@ export interface GoogleXmlItem {
|
|
|
151
151
|
paybackPeriod: any;
|
|
152
152
|
monthlyInstallment: any;
|
|
153
153
|
};
|
|
154
|
-
|
|
154
|
+
additional_image_link: string;
|
|
155
|
+
model: string;
|
|
156
|
+
VIN: string;
|
|
157
|
+
trim: string;
|
|
158
|
+
year: number;
|
|
159
|
+
mileage: number;
|
|
160
|
+
vehicle_option: string;
|
|
161
|
+
body_style: string;
|
|
162
|
+
engine: string;
|
|
163
|
+
date_first_registered: string;
|
|
164
|
+
fuel_consumption: string;
|
|
165
|
+
energy_consumption: string;
|
|
166
|
+
emissions_co2: string;
|
|
167
|
+
ads_redirect?: string;
|
|
168
|
+
"certified_pre-owned"?: boolean;
|
|
169
|
+
custom_label_0?: string;
|
|
170
|
+
custom_label_1?: string;
|
|
171
|
+
custom_label_2?: string;
|
|
172
|
+
custom_label_3?: string;
|
|
173
|
+
custom_label_4?: string;
|
|
155
174
|
}
|
|
156
175
|
export interface RubrikkXmlItem {
|
|
157
176
|
ad__all_imageurls: string[];
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { DataSchemes } from '@bytebrand/car-schema';
|
|
2
|
-
import { ConfigService, ImagesService, UserService } from '../services';
|
|
2
|
+
import { ConfigService, ImagesService, TransformerService, UserService } from '../services';
|
|
3
3
|
import { GoogleXmlItem } from '../interfaces';
|
|
4
4
|
export declare class GoogleTransformer {
|
|
5
5
|
private userService;
|
|
6
6
|
private configService;
|
|
7
7
|
private imageService;
|
|
8
|
+
private readonly transformService;
|
|
8
9
|
private translator;
|
|
9
|
-
constructor(userService: UserService, configService: ConfigService, imageService: ImagesService);
|
|
10
|
+
constructor(userService: UserService, configService: ConfigService, imageService: ImagesService, transformService: TransformerService);
|
|
10
11
|
transform({ car, images }: {
|
|
11
12
|
car: DataSchemes.Car;
|
|
12
13
|
images: Array<any>;
|
|
@@ -24,4 +25,11 @@ export declare class GoogleTransformer {
|
|
|
24
25
|
private getEnergyClass;
|
|
25
26
|
private getInstallment;
|
|
26
27
|
private getBrand;
|
|
28
|
+
private mapFuel;
|
|
29
|
+
private mapBodyStyle;
|
|
30
|
+
private getExtrasField;
|
|
31
|
+
private getTrim;
|
|
32
|
+
private getYear;
|
|
33
|
+
private getDateFirstRegistered;
|
|
34
|
+
private isNotEmptyArray;
|
|
27
35
|
}
|
|
@@ -16,15 +16,20 @@ const schema_tools_1 = require("@bytebrand/schema-tools");
|
|
|
16
16
|
const i18n_dictionaries_1 = require("@bytebrand/i18n-dictionaries");
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const services_1 = require("../services");
|
|
19
|
+
const moment_1 = require("moment");
|
|
20
|
+
const GOOGLE_MAX_TRIM_LENGTH = 50;
|
|
21
|
+
const TIMESTAMP_FIRST_YEAR = 1970;
|
|
19
22
|
let GoogleTransformer = class GoogleTransformer {
|
|
20
23
|
userService;
|
|
21
24
|
configService;
|
|
22
25
|
imageService;
|
|
26
|
+
transformService;
|
|
23
27
|
translator;
|
|
24
|
-
constructor(userService, configService, imageService) {
|
|
28
|
+
constructor(userService, configService, imageService, transformService) {
|
|
25
29
|
this.userService = userService;
|
|
26
30
|
this.configService = configService;
|
|
27
31
|
this.imageService = imageService;
|
|
32
|
+
this.transformService = transformService;
|
|
28
33
|
const dict = { ...i18n_dictionaries_1.de, ...i18n_dictionaries_1.deVehicleProps, ...i18n_dictionaries_1.deVehicleDetailsPage };
|
|
29
34
|
this.translator = new schema_tools_1.TranslatorExtended(dict);
|
|
30
35
|
}
|
|
@@ -32,20 +37,33 @@ let GoogleTransformer = class GoogleTransformer {
|
|
|
32
37
|
const carId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', ''));
|
|
33
38
|
const transformedImages = await this.imageService.getImages(car, images, this.configService.config.imageType, false);
|
|
34
39
|
return {
|
|
35
|
-
id: carId,
|
|
36
|
-
title: this.getTitle(car),
|
|
37
|
-
description: await this.getDescription(car),
|
|
38
40
|
google_product_category: this.getBreadcrumbs(car),
|
|
41
|
+
title: this.getTitle(car),
|
|
39
42
|
product_type: this.getCategory(car),
|
|
40
|
-
|
|
43
|
+
VIN: this.transformService.vinCode(car),
|
|
44
|
+
id: carId,
|
|
41
45
|
image_link: transformedImages[0],
|
|
46
|
+
additional_image_link: transformedImages.slice(1).join(','),
|
|
47
|
+
link: this.transformService.link(car),
|
|
42
48
|
condition: this.mapState(car),
|
|
49
|
+
price: this.getPrice(car),
|
|
50
|
+
brand: this.transformService.make(car),
|
|
51
|
+
model: this.transformService.model(car),
|
|
52
|
+
trim: this.getTrim(car),
|
|
53
|
+
year: this.getYear(car),
|
|
54
|
+
mileage: this.transformService.mileage(car),
|
|
55
|
+
color: this.getColor(car),
|
|
56
|
+
vehicle_option: this.getExtrasField(car),
|
|
57
|
+
body_style: this.mapBodyStyle(car),
|
|
58
|
+
engine: this.mapFuel(car),
|
|
59
|
+
date_first_registered: this.getDateFirstRegistered(car),
|
|
60
|
+
fuel_consumption: `${this.transformService.fuelConsumption(car)}'l/100km'`,
|
|
61
|
+
energy_consumption: `${this.transformService.fuelConsumption(car)}'kWt/100km'`,
|
|
62
|
+
emissions_co2: `${this.transformService.cO2Emission(car)}g/km`,
|
|
63
|
+
description: await this.getDescription(car),
|
|
43
64
|
availability: this.getAvailability(car),
|
|
44
|
-
brand: (0, lodash_1.get)(car, 'mainData.make', ''),
|
|
45
|
-
price: this.getRetailPrice(car),
|
|
46
65
|
sale_price: this.getPrice(car),
|
|
47
66
|
energy_efficiency_class: this.getEnergyClass(car),
|
|
48
|
-
color: this.getColor(car),
|
|
49
67
|
installment: this.getInstallment(car),
|
|
50
68
|
custom_label_0: `${this.getInstallment(car)} EUR mtl.`,
|
|
51
69
|
};
|
|
@@ -150,12 +168,128 @@ let GoogleTransformer = class GoogleTransformer {
|
|
|
150
168
|
return make;
|
|
151
169
|
}
|
|
152
170
|
}
|
|
171
|
+
mapFuel(car) {
|
|
172
|
+
const available = {
|
|
173
|
+
selector_fuel_petrol: 'Gasoline',
|
|
174
|
+
selector_fuel_diesel: 'Diesel',
|
|
175
|
+
selector_fuel_electrical: 'Electric',
|
|
176
|
+
selector_fuel_hybridElectricalPetrol: 'Hybrid',
|
|
177
|
+
selector_fuel_hybridElectricalDiesel: 'Hybrid',
|
|
178
|
+
selector_fuel_carGas: 'CarGas',
|
|
179
|
+
selector_fuel_naturalGas: 'NaturalGas',
|
|
180
|
+
selector_fuel_ethanol: 'Ethanol',
|
|
181
|
+
selector_fuel_hydrogen: 'Hydrogen',
|
|
182
|
+
selector_unknown: 'Other',
|
|
183
|
+
};
|
|
184
|
+
const fuel = (0, lodash_1.get)(car, 'consumption.fuel', 'selector_unknown');
|
|
185
|
+
return (0, lodash_1.get)(available, fuel);
|
|
186
|
+
}
|
|
187
|
+
mapBodyStyle(car) {
|
|
188
|
+
const available = {
|
|
189
|
+
selector_unknown: 'Other',
|
|
190
|
+
selector_category_combi: 'Wagon',
|
|
191
|
+
selector_category_sedan: 'Sedan',
|
|
192
|
+
selector_category_compact: 'Small_car',
|
|
193
|
+
selector_category_coupe: 'Coupe',
|
|
194
|
+
selector_category_convertible: 'Convertible',
|
|
195
|
+
selector_category_suv: 'Suv',
|
|
196
|
+
selector_category_van: 'Van',
|
|
197
|
+
selector_category_transporter: 'Truck',
|
|
198
|
+
selector_category_minibus: 'Minivan',
|
|
199
|
+
};
|
|
200
|
+
const category = (0, lodash_1.get)(car, 'mainData.category', 'selector_unknown');
|
|
201
|
+
return (0, lodash_1.get)(available, category);
|
|
202
|
+
}
|
|
203
|
+
getExtrasField(car) {
|
|
204
|
+
const booleanFields = [
|
|
205
|
+
'engineData.startStopSystem',
|
|
206
|
+
'window.panoramicGlassRoof',
|
|
207
|
+
'assistants.automaticRainSensor',
|
|
208
|
+
'assistants.cruiseControl',
|
|
209
|
+
'assistants.headUpDisplay',
|
|
210
|
+
'assistants.abs',
|
|
211
|
+
'assistants.esp',
|
|
212
|
+
'assistants.collisionAvoidance',
|
|
213
|
+
'assistants.trafficSignRecognition',
|
|
214
|
+
'lights.xenonHeadlights',
|
|
215
|
+
'lights.ledHeadlights',
|
|
216
|
+
'lights.laserHeadlights',
|
|
217
|
+
'lights.lightSensor',
|
|
218
|
+
'wheel.multifunctionalWheel',
|
|
219
|
+
'heatingCooling.auxiliaryHeating',
|
|
220
|
+
'trailerCoupling.trailerCouplingFix',
|
|
221
|
+
'trailerCoupling.trailerCouplingRemovable',
|
|
222
|
+
'trailerCoupling.trailerCouplingRotatable',
|
|
223
|
+
'multimedia.navigationSystem',
|
|
224
|
+
'multimedia.bluetooth',
|
|
225
|
+
'multimedia.handsFreePhoneSystem',
|
|
226
|
+
];
|
|
227
|
+
const selectorFields = [
|
|
228
|
+
'driveSuspension.driveType',
|
|
229
|
+
'interior.interiorType',
|
|
230
|
+
'heatingCooling.climatisation',
|
|
231
|
+
];
|
|
232
|
+
const selectorListFields = [
|
|
233
|
+
'seats.driverSeats',
|
|
234
|
+
'seats.coDriverSeats',
|
|
235
|
+
'seats.backSeats',
|
|
236
|
+
'assistants.parkingAssistants',
|
|
237
|
+
'airbags.airbag',
|
|
238
|
+
];
|
|
239
|
+
const filteredBooleanFields = booleanFields.filter((field) => {
|
|
240
|
+
return (0, lodash_1.get)(car, field, false);
|
|
241
|
+
});
|
|
242
|
+
const filteredSelectorFields = selectorFields.filter((field) => {
|
|
243
|
+
const value = (0, lodash_1.get)(car, field);
|
|
244
|
+
return value && value !== 'selector_unknown';
|
|
245
|
+
});
|
|
246
|
+
const filteredSelectorListFields = selectorListFields.filter((field) => {
|
|
247
|
+
const list = (0, lodash_1.get)(car, field);
|
|
248
|
+
if (this.isNotEmptyArray(list)) {
|
|
249
|
+
const filtered = list.filter((selector) => {
|
|
250
|
+
return selector && selector !== 'selector_unknown';
|
|
251
|
+
});
|
|
252
|
+
return filtered.length;
|
|
253
|
+
}
|
|
254
|
+
return false;
|
|
255
|
+
});
|
|
256
|
+
return filteredBooleanFields
|
|
257
|
+
.concat(filteredSelectorFields)
|
|
258
|
+
.concat(filteredSelectorListFields)
|
|
259
|
+
.map((field) => {
|
|
260
|
+
return this.translator.translateVal(field.replace('.', '_'));
|
|
261
|
+
})
|
|
262
|
+
.join(', ');
|
|
263
|
+
}
|
|
264
|
+
getTrim(car) {
|
|
265
|
+
const trim = (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.subModel', ''));
|
|
266
|
+
return (0, lodash_1.truncate)(trim, { length: GOOGLE_MAX_TRIM_LENGTH, separator: ' ' });
|
|
267
|
+
}
|
|
268
|
+
getYear(car) {
|
|
269
|
+
const firstModelsProductionDate = +(0, lodash_1.get)(car, 'mainData.firstModelsProductionDate', 0);
|
|
270
|
+
const firstModelsProductionYear = (0, lodash_1.toSafeInteger)((0, moment_1.default)(firstModelsProductionDate * 1000).format('YYYY'));
|
|
271
|
+
return firstModelsProductionYear > TIMESTAMP_FIRST_YEAR ? firstModelsProductionYear : null;
|
|
272
|
+
}
|
|
273
|
+
getDateFirstRegistered(car) {
|
|
274
|
+
const timestamp = +(0, lodash_1.get)(car, 'mainData.mileage', '');
|
|
275
|
+
if (!timestamp)
|
|
276
|
+
return null;
|
|
277
|
+
const date = new Date(timestamp * 1000);
|
|
278
|
+
const month = date.getUTCMonth() + 1;
|
|
279
|
+
const year = date.getUTCFullYear();
|
|
280
|
+
const formattedMonth = month < 10 ? `0${month}` : month;
|
|
281
|
+
return `${formattedMonth}/${year}`;
|
|
282
|
+
}
|
|
283
|
+
isNotEmptyArray(array) {
|
|
284
|
+
return array && Array.isArray(array) && !!array.length;
|
|
285
|
+
}
|
|
153
286
|
};
|
|
154
287
|
exports.GoogleTransformer = GoogleTransformer;
|
|
155
288
|
exports.GoogleTransformer = GoogleTransformer = __decorate([
|
|
156
289
|
(0, common_1.Injectable)(),
|
|
157
290
|
__metadata("design:paramtypes", [services_1.UserService,
|
|
158
291
|
services_1.ConfigService,
|
|
159
|
-
services_1.ImagesService
|
|
292
|
+
services_1.ImagesService,
|
|
293
|
+
services_1.TransformerService])
|
|
160
294
|
], GoogleTransformer);
|
|
161
295
|
//# sourceMappingURL=google.transformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.transformer.js","sourceRoot":"","sources":["../../src/transformers/google.transformer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"google.transformer.js","sourceRoot":"","sources":["../../src/transformers/google.transformer.ts"],"names":[],"mappings":"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"}
|