@bytebrand/export-cars 1.21.17 → 1.21.20

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.
@@ -151,7 +151,26 @@ export interface GoogleXmlItem {
151
151
  paybackPeriod: any;
152
152
  monthlyInstallment: any;
153
153
  };
154
- custom_label_0: string;
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,19 @@ 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 GOOGLE_MAX_TRIM_LENGTH = 50;
20
+ const TIMESTAMP_FIRST_YEAR = 1970;
19
21
  let GoogleTransformer = class GoogleTransformer {
20
22
  userService;
21
23
  configService;
22
24
  imageService;
25
+ transformService;
23
26
  translator;
24
- constructor(userService, configService, imageService) {
27
+ constructor(userService, configService, imageService, transformService) {
25
28
  this.userService = userService;
26
29
  this.configService = configService;
27
30
  this.imageService = imageService;
31
+ this.transformService = transformService;
28
32
  const dict = { ...i18n_dictionaries_1.de, ...i18n_dictionaries_1.deVehicleProps, ...i18n_dictionaries_1.deVehicleDetailsPage };
29
33
  this.translator = new schema_tools_1.TranslatorExtended(dict);
30
34
  }
@@ -32,20 +36,33 @@ let GoogleTransformer = class GoogleTransformer {
32
36
  const carId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', ''));
33
37
  const transformedImages = await this.imageService.getImages(car, images, this.configService.config.imageType, false);
34
38
  return {
35
- id: carId,
36
- title: this.getTitle(car),
37
- description: await this.getDescription(car),
38
39
  google_product_category: this.getBreadcrumbs(car),
40
+ title: this.getTitle(car),
39
41
  product_type: this.getCategory(car),
40
- link: this.getLink(car),
42
+ VIN: this.transformService.vinCode(car),
43
+ id: carId,
41
44
  image_link: transformedImages[0],
45
+ additional_image_link: transformedImages.slice(1).join(','),
46
+ link: this.transformService.link(car),
42
47
  condition: this.mapState(car),
48
+ price: this.getPrice(car),
49
+ brand: this.transformService.make(car),
50
+ model: this.transformService.model(car),
51
+ trim: this.getTrim(car),
52
+ year: this.getYear(car),
53
+ mileage: this.transformService.mileage(car),
54
+ color: this.getColor(car),
55
+ vehicle_option: this.getExtrasField(car),
56
+ body_style: this.mapBodyStyle(car),
57
+ engine: this.mapFuel(car),
58
+ date_first_registered: this.getDateFirstRegistered(car),
59
+ fuel_consumption: `${this.transformService.fuelConsumption(car)}'l/100km'`,
60
+ energy_consumption: `${this.transformService.fuelConsumption(car)}'kWt/100km'`,
61
+ emissions_co2: `${this.transformService.cO2Emission(car)}g/km`,
62
+ description: await this.getDescription(car),
43
63
  availability: this.getAvailability(car),
44
- brand: (0, lodash_1.get)(car, 'mainData.make', ''),
45
- price: this.getRetailPrice(car),
46
64
  sale_price: this.getPrice(car),
47
65
  energy_efficiency_class: this.getEnergyClass(car),
48
- color: this.getColor(car),
49
66
  installment: this.getInstallment(car),
50
67
  custom_label_0: `${this.getInstallment(car)} EUR mtl.`,
51
68
  };
@@ -150,12 +167,129 @@ let GoogleTransformer = class GoogleTransformer {
150
167
  return make;
151
168
  }
152
169
  }
170
+ mapFuel(car) {
171
+ const available = {
172
+ selector_fuel_petrol: 'Gasoline',
173
+ selector_fuel_diesel: 'Diesel',
174
+ selector_fuel_electrical: 'Electric',
175
+ selector_fuel_hybridElectricalPetrol: 'Hybrid',
176
+ selector_fuel_hybridElectricalDiesel: 'Hybrid',
177
+ selector_fuel_carGas: 'CarGas',
178
+ selector_fuel_naturalGas: 'NaturalGas',
179
+ selector_fuel_ethanol: 'Ethanol',
180
+ selector_fuel_hydrogen: 'Hydrogen',
181
+ selector_unknown: 'Other',
182
+ };
183
+ const fuel = (0, lodash_1.get)(car, 'consumption.fuel', 'selector_unknown');
184
+ return (0, lodash_1.get)(available, fuel);
185
+ }
186
+ mapBodyStyle(car) {
187
+ const available = {
188
+ selector_unknown: 'Other',
189
+ selector_category_combi: 'Wagon',
190
+ selector_category_sedan: 'Sedan',
191
+ selector_category_compact: 'Small_car',
192
+ selector_category_coupe: 'Coupe',
193
+ selector_category_convertible: 'Convertible',
194
+ selector_category_suv: 'Suv',
195
+ selector_category_van: 'Van',
196
+ selector_category_transporter: 'Truck',
197
+ selector_category_minibus: 'Minivan',
198
+ };
199
+ const category = (0, lodash_1.get)(car, 'mainData.category', 'selector_unknown');
200
+ return (0, lodash_1.get)(available, category);
201
+ }
202
+ getExtrasField(car) {
203
+ const booleanFields = [
204
+ 'engineData.startStopSystem',
205
+ 'window.panoramicGlassRoof',
206
+ 'assistants.automaticRainSensor',
207
+ 'assistants.cruiseControl',
208
+ 'assistants.headUpDisplay',
209
+ 'assistants.abs',
210
+ 'assistants.esp',
211
+ 'assistants.collisionAvoidance',
212
+ 'assistants.trafficSignRecognition',
213
+ 'lights.xenonHeadlights',
214
+ 'lights.ledHeadlights',
215
+ 'lights.laserHeadlights',
216
+ 'lights.lightSensor',
217
+ 'wheel.multifunctionalWheel',
218
+ 'heatingCooling.auxiliaryHeating',
219
+ 'trailerCoupling.trailerCouplingFix',
220
+ 'trailerCoupling.trailerCouplingRemovable',
221
+ 'trailerCoupling.trailerCouplingRotatable',
222
+ 'multimedia.navigationSystem',
223
+ 'multimedia.bluetooth',
224
+ 'multimedia.handsFreePhoneSystem',
225
+ ];
226
+ const selectorFields = [
227
+ 'driveSuspension.driveType',
228
+ 'interior.interiorType',
229
+ 'heatingCooling.climatisation',
230
+ ];
231
+ const selectorListFields = [
232
+ 'seats.driverSeats',
233
+ 'seats.coDriverSeats',
234
+ 'seats.backSeats',
235
+ 'assistants.parkingAssistants',
236
+ 'airbags.airbag',
237
+ ];
238
+ const filteredBooleanFields = booleanFields.filter((field) => {
239
+ return (0, lodash_1.get)(car, field, false);
240
+ });
241
+ const filteredSelectorFields = selectorFields.filter((field) => {
242
+ const value = (0, lodash_1.get)(car, field);
243
+ return value && value !== 'selector_unknown';
244
+ });
245
+ const filteredSelectorListFields = selectorListFields.filter((field) => {
246
+ const list = (0, lodash_1.get)(car, field);
247
+ if (this.isNotEmptyArray(list)) {
248
+ const filtered = list.filter((selector) => {
249
+ return selector && selector !== 'selector_unknown';
250
+ });
251
+ return filtered.length;
252
+ }
253
+ return false;
254
+ });
255
+ return filteredBooleanFields
256
+ .concat(filteredSelectorFields)
257
+ .concat(filteredSelectorListFields)
258
+ .map((field) => {
259
+ return this.translator.translateVal(field.replace('.', '_'));
260
+ })
261
+ .join(', ');
262
+ }
263
+ getTrim(car) {
264
+ const trim = (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.subModel', ''));
265
+ return (0, lodash_1.truncate)(trim, { length: GOOGLE_MAX_TRIM_LENGTH, separator: ' ' });
266
+ }
267
+ getYear(car) {
268
+ const firstModelsProductionDate = +(0, lodash_1.get)(car, 'mainData.firstModelsProductionDate', 0);
269
+ const date = new Date(firstModelsProductionDate);
270
+ const firstModelsProductionYear = date.getFullYear();
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":"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"}
1
+ {"version":3,"file":"google.transformer.js","sourceRoot":"","sources":["../../src/transformers/google.transformer.ts"],"names":[],"mappings":"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"}