@bytebrand/export-cars 1.26.46 → 1.26.47

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.
@@ -1,6 +1,7 @@
1
1
  import { MappingRules } from '../interfaces/mapping-rules.interface';
2
2
  import { ConfigService } from './config.service';
3
3
  import { DealersMapping, MetaPushPriorityMapping } from '../interfaces/dealers-mapping.interface';
4
+ export declare const mappingSheetCsvUrl: (spreadsheetId: string, title: string) => string;
4
5
  export declare class MappingService {
5
6
  private configService;
6
7
  constructor(configService: ConfigService);
@@ -8,6 +9,7 @@ export declare class MappingService {
8
9
  private dealers;
9
10
  private metaPushPriorities;
10
11
  getRules(): Promise<MappingRules[]>;
12
+ rulesFromCsv(csv: string, title: string): MappingRules[];
11
13
  getDealersMapping(): Promise<DealersMapping[]>;
12
14
  getMetaPushPriorityMapping(): Promise<MetaPushPriorityMapping[]>;
13
15
  private rowsToRules;
@@ -9,12 +9,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MappingService = void 0;
12
+ exports.MappingService = exports.mappingSheetCsvUrl = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const axios_1 = require("axios");
15
+ const cronicle_helper_1 = require("@bytebrand/cronicle-helper");
15
16
  const google_spreadsheet_1 = require("google-spreadsheet");
16
17
  const config_service_1 = require("./config.service");
17
18
  const utils_1 = require("../utils");
19
+ const mappingSheetCsvUrl = (spreadsheetId, title) => `https://docs.google.com/spreadsheets/d/${spreadsheetId}/gviz/tq?tqx=out:csv&sheet=${encodeURIComponent(title)}`;
20
+ exports.mappingSheetCsvUrl = mappingSheetCsvUrl;
21
+ const REQUIRED_MAPPING_COLUMNS = ['importField', 'importFieldType', 'autodeField', 'autodeFieldType'];
18
22
  let MappingService = class MappingService {
19
23
  configService;
20
24
  constructor(configService) {
@@ -25,21 +29,37 @@ let MappingService = class MappingService {
25
29
  metaPushPriorities;
26
30
  async getRules() {
27
31
  if (!this.rules) {
28
- const spreadsheet = new google_spreadsheet_1.GoogleSpreadsheet(this.configService.config.mappingSpreadsheetId);
29
- spreadsheet.useApiKey(this.configService.config.apikey);
30
- await spreadsheet.loadInfo();
31
- const rows = await spreadsheet.sheetsByTitle[this.configService.config.mappingSpreadsheetTitle].getRows();
32
- const mappingRules = this.rowsToRules(rows);
33
- mappingRules.map((rule, _i, selfRules) => {
34
- this.removeEmptyKeys(rule);
35
- if (rule.importFieldType && rule.importFieldType.includes('selector')) {
36
- this.groupSelectors(rule, selfRules);
37
- }
38
- });
39
- this.rules = this.filterResultedRows(mappingRules);
32
+ const { mappingSpreadsheetId, mappingSpreadsheetTitle } = this.configService.config;
33
+ const url = (0, exports.mappingSheetCsvUrl)(mappingSpreadsheetId, mappingSpreadsheetTitle);
34
+ const { data } = await cronicle_helper_1.CronicleUtils.retry(() => axios_1.default.get(url, { responseType: 'text', timeout: 30000 }), 3, 5000, true);
35
+ this.rules = this.rulesFromCsv(data, mappingSpreadsheetTitle);
36
+ console.log(`mapping: ${this.rules.length} rules from the public CSV of tab ${mappingSpreadsheetTitle}`);
40
37
  }
41
38
  return this.rules;
42
39
  }
40
+ rulesFromCsv(csv, title) {
41
+ const rows = (0, utils_1.parseCsvToObjects)(typeof csv === 'string' ? csv : '');
42
+ const columns = rows.length ? Object.keys(rows[0]) : [];
43
+ const missing = REQUIRED_MAPPING_COLUMNS.filter(column => !columns.includes(column));
44
+ if (missing.length) {
45
+ throw new Error(`mapping sheet tab "${title}" not readable as CSV (missing columns ${missing.join(', ')}) — is the sheet still shared with everyone who has the link?`);
46
+ }
47
+ const mappingRules = rows.map((row) => {
48
+ delete row[''];
49
+ return row;
50
+ });
51
+ mappingRules.forEach((rule, _i, selfRules) => {
52
+ this.removeEmptyKeys(rule);
53
+ if (rule.importFieldType && rule.importFieldType.includes('selector')) {
54
+ this.groupSelectors(rule, selfRules);
55
+ }
56
+ });
57
+ const rules = this.filterResultedRows(mappingRules);
58
+ if (!rules.length) {
59
+ throw new Error(`mapping sheet tab "${title}" has no rule`);
60
+ }
61
+ return rules;
62
+ }
43
63
  async getDealersMapping() {
44
64
  if (!this.dealers) {
45
65
  const spreadsheet = new google_spreadsheet_1.GoogleSpreadsheet(this.configService.config.dealersSpreadsheetId);
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.service.js","sourceRoot":"","sources":["../../src/services/mapping.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.service.js","sourceRoot":"","sources":["../../src/services/mapping.service.ts"],"names":[],"mappings":"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"}