Checking vin number
This commit is contained in:
parent
0400944316
commit
c89ce6071c
@ -191,7 +191,7 @@ function waitForReport(centrifugoConfig, channel) {
|
||||
} else {
|
||||
reject(new Error('Request to avtocod timed out'));
|
||||
}
|
||||
}, 15000);
|
||||
}, 20000);
|
||||
|
||||
const sub = centrifuge.newSubscription(channel);
|
||||
|
||||
@ -211,9 +211,10 @@ function waitForReport(centrifugoConfig, channel) {
|
||||
}
|
||||
|
||||
class AvtocodProvider {
|
||||
static async getReport(number) {
|
||||
static async getReport(number, type) {
|
||||
try {
|
||||
let url = `${baseUrl}/auto/generate?number=${encodeURIComponent(number)}&device_token=${deviceToken}&type=GRZ`;
|
||||
let numberType = type ?? 'GRZ';
|
||||
let url = `${baseUrl}/auto/generate?number=${encodeURIComponent(number)}&device_token=${deviceToken}&type=${numberType}`;
|
||||
let resp = await getJson(url);
|
||||
|
||||
let html = await getPage(resp.report_uri);
|
||||
|
||||
@ -56,11 +56,14 @@ class Vin01Provider {
|
||||
}
|
||||
}
|
||||
|
||||
static async getReport(number, token) {
|
||||
static async getReport(number, token, type) {
|
||||
try {
|
||||
let vin = await Vin01Provider.getVin(number, token);
|
||||
let vin = number;
|
||||
if(type != 'VIN') {
|
||||
vin = await Vin01Provider.getVin(number, token);
|
||||
console.log('vin01 found VIN: ', vin);
|
||||
return await this.getReportVin(vin, number, token);
|
||||
}
|
||||
return await this.getReportVin(vin, type == 'GRZ' ? number : '', token);
|
||||
} catch(ex) {
|
||||
console.log('Vin01 error: ', ex.message);
|
||||
ex.debugInfo = {
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { query } from 'express';
|
||||
import Constants from '../data_providers/constants.js';
|
||||
import Utils from '../utils/utils.js';
|
||||
import DebugInfo from './DebugInfo.js';
|
||||
@ -39,7 +40,6 @@ class Vehicle {
|
||||
v.engine = { number: e.number, volume: e.volume, powerHp: e.power?.hp, powerKw: e.power?.kw, fuelType: e.fuel?.type };
|
||||
v.model = tech.model ? { name: tech.model.name } : null;
|
||||
v.year = tech.year;
|
||||
v.number = report.identifiers_query.query;
|
||||
v.currentNumber = report.fields.identifiers.vehicle.reg_num;
|
||||
v.pts = report.fields.identifiers.vehicle.pts;
|
||||
v.sts = report.fields.identifiers.vehicle.sts;
|
||||
@ -68,6 +68,13 @@ class Vehicle {
|
||||
v.osagoContracts = [];
|
||||
v.debugInfo = { autocod: new DebugInfo() };
|
||||
|
||||
let queryType = report.identifiers_query.queryType;
|
||||
if(queryType == 'GRZ') {
|
||||
v.number = report.identifiers_query.query;
|
||||
} else {
|
||||
v.number = report.fields.identifiers.vehicle.reg_num;
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ const makeError = (error) => ({ success: false, error });
|
||||
|
||||
router.post('/check', async (req, res) => {
|
||||
const number = req.body.number.replace(/ /g, '').toUpperCase();
|
||||
const type = req.body.type;
|
||||
const { googleIdToken, forceUpdate, notes, events } = req.body;
|
||||
const { email } = req.user;
|
||||
|
||||
@ -53,11 +54,11 @@ router.post('/check', async (req, res) => {
|
||||
res.send({ success: true, data: vehicles[0] });
|
||||
} else {
|
||||
try {
|
||||
let autocodPromise = AvtocodProvider.getReport(number);
|
||||
let autocodPromise = AvtocodProvider.getReport(number, type);
|
||||
let all = [autocodPromise];
|
||||
|
||||
if (googleIdToken) {
|
||||
let vin01Promise = Vin01Provider.getReport(number, googleIdToken);
|
||||
let vin01Promise = Vin01Provider.getReport(number, googleIdToken, type);
|
||||
all.push(vin01Promise);
|
||||
} else {
|
||||
all.push(
|
||||
@ -71,7 +72,13 @@ router.post('/check', async (req, res) => {
|
||||
);
|
||||
}
|
||||
|
||||
if(type == 'GRZ') {
|
||||
all.push(NomerogramProvider.getGroups(number));
|
||||
} else {
|
||||
let error = Error();
|
||||
error.debugInfo = DebugInfo.fromError('not relevant');
|
||||
all.push(Promise.reject(error));
|
||||
}
|
||||
|
||||
let [autocod, vin01, nomerogram] = await Promise.allSettled(all);
|
||||
|
||||
@ -142,7 +149,10 @@ router.post('/check', async (req, res) => {
|
||||
vehicle.mergeEvents(events);
|
||||
}
|
||||
|
||||
if(type == 'GRZ') {
|
||||
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
||||
}
|
||||
|
||||
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||
|
||||
res.status(201).send({ success: true, data: vehicle });
|
||||
|
||||
Loading…
Reference in New Issue
Block a user