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