Add second provider
This commit is contained in:
parent
26fb90df9c
commit
2c1957677f
@ -47,7 +47,7 @@ function waitForReport(pubnubConfig, channel) {
|
|||||||
} else {
|
} else {
|
||||||
reject(new Error('Request timed out'));
|
reject(new Error('Request timed out'));
|
||||||
}
|
}
|
||||||
}, 10000);
|
}, 15000);
|
||||||
|
|
||||||
let pubnub = new PubNub(pubnubConfig);
|
let pubnub = new PubNub(pubnubConfig);
|
||||||
pubnub.addListener({
|
pubnub.addListener({
|
||||||
|
|||||||
20
data_providers/vin01.js
Normal file
20
data_providers/vin01.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
const fetch = require('node-fetch');
|
||||||
|
|
||||||
|
const baseUrl = 'https://vin01.ru/v2';
|
||||||
|
|
||||||
|
class Vin01Provider {
|
||||||
|
static async getVin(number, token) {
|
||||||
|
let url = `${baseUrl}/getVin.php?key=${token}&gosNumber=${encodeURIComponent(number)}`;
|
||||||
|
let result = await fetch(url);
|
||||||
|
let json = await result.json();
|
||||||
|
if(json.success && json.code == 200) {
|
||||||
|
return json.data.vin;
|
||||||
|
} else {
|
||||||
|
console.log('==========================================================');
|
||||||
|
console.log(JSON.stringify(json));
|
||||||
|
throw Error('Vin01 provider failed to get VIN');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Vin01Provider;
|
||||||
@ -20,7 +20,7 @@ class Vehicle {
|
|||||||
//console.log(JSON.stringify(report));
|
//console.log(JSON.stringify(report));
|
||||||
let tech = report.fields.tech_data;
|
let tech = report.fields.tech_data;
|
||||||
if(!tech) {
|
if(!tech) {
|
||||||
throw Error("Empty report");
|
throw Error('Empty report');
|
||||||
}
|
}
|
||||||
|
|
||||||
let e = tech.engine;
|
let e = tech.engine;
|
||||||
@ -49,6 +49,10 @@ class Vehicle {
|
|||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// updateFromVin01(report) {
|
||||||
|
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Vehicle;
|
module.exports = Vehicle;
|
||||||
|
|||||||
122
package-lock.json
generated
122
package-lock.json
generated
@ -14,26 +14,26 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/generator": {
|
"@babel/generator": {
|
||||||
"version": "7.8.4",
|
"version": "7.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
|
||||||
"integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==",
|
"integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/types": "^7.8.3",
|
"@babel/types": "^7.9.6",
|
||||||
"jsesc": "^2.5.1",
|
"jsesc": "^2.5.1",
|
||||||
"lodash": "^4.17.13",
|
"lodash": "^4.17.13",
|
||||||
"source-map": "^0.5.0"
|
"source-map": "^0.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helper-function-name": {
|
"@babel/helper-function-name": {
|
||||||
"version": "7.8.3",
|
"version": "7.9.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
|
||||||
"integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
|
"integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-get-function-arity": "^7.8.3",
|
"@babel/helper-get-function-arity": "^7.8.3",
|
||||||
"@babel/template": "^7.8.3",
|
"@babel/template": "^7.8.3",
|
||||||
"@babel/types": "^7.8.3"
|
"@babel/types": "^7.9.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helper-get-function-arity": {
|
"@babel/helper-get-function-arity": {
|
||||||
@ -54,6 +54,12 @@
|
|||||||
"@babel/types": "^7.8.3"
|
"@babel/types": "^7.8.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@babel/helper-validator-identifier": {
|
||||||
|
"version": "7.9.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
|
||||||
|
"integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@babel/highlight": {
|
"@babel/highlight": {
|
||||||
"version": "7.8.3",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
|
||||||
@ -66,34 +72,34 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/parser": {
|
"@babel/parser": {
|
||||||
"version": "7.8.4",
|
"version": "7.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
|
||||||
"integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==",
|
"integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@babel/template": {
|
"@babel/template": {
|
||||||
"version": "7.8.3",
|
"version": "7.8.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
|
||||||
"integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
|
"integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.8.3",
|
"@babel/code-frame": "^7.8.3",
|
||||||
"@babel/parser": "^7.8.3",
|
"@babel/parser": "^7.8.6",
|
||||||
"@babel/types": "^7.8.3"
|
"@babel/types": "^7.8.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/traverse": {
|
"@babel/traverse": {
|
||||||
"version": "7.8.4",
|
"version": "7.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
|
||||||
"integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==",
|
"integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.8.3",
|
"@babel/code-frame": "^7.8.3",
|
||||||
"@babel/generator": "^7.8.4",
|
"@babel/generator": "^7.9.6",
|
||||||
"@babel/helper-function-name": "^7.8.3",
|
"@babel/helper-function-name": "^7.9.5",
|
||||||
"@babel/helper-split-export-declaration": "^7.8.3",
|
"@babel/helper-split-export-declaration": "^7.8.3",
|
||||||
"@babel/parser": "^7.8.4",
|
"@babel/parser": "^7.9.6",
|
||||||
"@babel/types": "^7.8.3",
|
"@babel/types": "^7.9.6",
|
||||||
"debug": "^4.1.0",
|
"debug": "^4.1.0",
|
||||||
"globals": "^11.1.0",
|
"globals": "^11.1.0",
|
||||||
"lodash": "^4.17.13"
|
"lodash": "^4.17.13"
|
||||||
@ -123,12 +129,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/types": {
|
"@babel/types": {
|
||||||
"version": "7.8.3",
|
"version": "7.9.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
|
||||||
"integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
|
"integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"esutils": "^2.0.2",
|
"@babel/helper-validator-identifier": "^7.9.5",
|
||||||
"lodash": "^4.17.13",
|
"lodash": "^4.17.13",
|
||||||
"to-fast-properties": "^2.0.0"
|
"to-fast-properties": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -221,9 +227,9 @@
|
|||||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||||
},
|
},
|
||||||
"ast-types": {
|
"ast-types": {
|
||||||
"version": "0.13.2",
|
"version": "0.13.3",
|
||||||
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz",
|
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz",
|
||||||
"integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA=="
|
"integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA=="
|
||||||
},
|
},
|
||||||
"astral-regex": {
|
"astral-regex": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@ -237,15 +243,15 @@
|
|||||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||||
},
|
},
|
||||||
"babel-eslint": {
|
"babel-eslint": {
|
||||||
"version": "10.0.3",
|
"version": "10.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
|
||||||
"integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==",
|
"integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.0.0",
|
"@babel/code-frame": "^7.0.0",
|
||||||
"@babel/parser": "^7.0.0",
|
"@babel/parser": "^7.7.0",
|
||||||
"@babel/traverse": "^7.0.0",
|
"@babel/traverse": "^7.7.0",
|
||||||
"@babel/types": "^7.0.0",
|
"@babel/types": "^7.7.0",
|
||||||
"eslint-visitor-keys": "^1.0.0",
|
"eslint-visitor-keys": "^1.0.0",
|
||||||
"resolve": "^1.12.0"
|
"resolve": "^1.12.0"
|
||||||
}
|
}
|
||||||
@ -293,9 +299,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bson": {
|
"bson": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz",
|
||||||
"integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg=="
|
"integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q=="
|
||||||
},
|
},
|
||||||
"buffer-equal-constant-time": {
|
"buffer-equal-constant-time": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
@ -313,6 +319,11 @@
|
|||||||
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"cbor-js": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cbor-js/-/cbor-js-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-yAzmEg84fo+qdDcN/aIdlluPx/k="
|
||||||
|
},
|
||||||
"cbor-sync": {
|
"cbor-sync": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/cbor-sync/-/cbor-sync-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/cbor-sync/-/cbor-sync-1.0.4.tgz",
|
||||||
@ -876,9 +887,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"formidable": {
|
"formidable": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
|
||||||
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="
|
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
|
||||||
},
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
@ -1380,12 +1391,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mongodb": {
|
"mongodb": {
|
||||||
"version": "3.5.2",
|
"version": "3.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz",
|
||||||
"integrity": "sha512-Lxt4th2tK2MxmkDBR5cMik+xEnkvhwg0BC5kGcHm9RBwaNEsrIryvV5istGXOHbnif5KslMpY1FbX6YbGJ/Trg==",
|
"integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bl": "^2.2.0",
|
"bl": "^2.2.0",
|
||||||
"bson": "^1.1.1",
|
"bson": "^1.1.4",
|
||||||
"denque": "^1.4.1",
|
"denque": "^1.4.1",
|
||||||
"require_optional": "^1.0.1",
|
"require_optional": "^1.0.1",
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
@ -1610,16 +1621,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"proxy-from-env": {
|
"proxy-from-env": {
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||||
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
|
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
|
||||||
},
|
},
|
||||||
"pubnub": {
|
"pubnub": {
|
||||||
"version": "4.27.3",
|
"version": "4.27.6",
|
||||||
"resolved": "https://registry.npmjs.org/pubnub/-/pubnub-4.27.3.tgz",
|
"resolved": "https://registry.npmjs.org/pubnub/-/pubnub-4.27.6.tgz",
|
||||||
"integrity": "sha512-Wl8MrwMJPJSUCLHhxhQSKdNbpopNPgCVNL5ogDw/fZ8OUn0/6o/V6HTPTAkyurD3LnPCw7M1A7kdBFmpy+Iitw==",
|
"integrity": "sha512-+g7rVPiiDNLgDO3Z+oNOpyEVMuNYrulxPqxbVUyFQId4RlNyiiv61vvnTPdq4TiPrEmjcrByTK5+sCrzgUX5NQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"agentkeepalive": "^3.5.2",
|
"agentkeepalive": "^3.5.2",
|
||||||
|
"cbor-js": "^0.1.0",
|
||||||
"cbor-sync": "^1.0.4",
|
"cbor-sync": "^1.0.4",
|
||||||
"lil-uuid": "^0.1.1",
|
"lil-uuid": "^0.1.1",
|
||||||
"superagent": "^3.8.1",
|
"superagent": "^3.8.1",
|
||||||
@ -1683,9 +1695,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.15.0",
|
"version": "1.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
|
||||||
"integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
|
"integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-parse": "^1.0.6"
|
"path-parse": "^1.0.6"
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
"description": "AutoCat app backend",
|
"description": "AutoCat app backend",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"server": "node --async-stack-traces index.js",
|
"server": "node --async-stack-traces --trace-warnings index.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"author": "Selim Mustafaev",
|
"author": "Selim Mustafaev",
|
||||||
@ -14,13 +14,13 @@
|
|||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-bearer-token": "^2.4.0",
|
"express-bearer-token": "^2.4.0",
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
"mongodb": "^3.5.2",
|
"mongodb": "^3.5.7",
|
||||||
"node-fetch": "^2.6.0",
|
"node-fetch": "^2.6.0",
|
||||||
"pubnub": "^4.27.3",
|
"pubnub": "^4.27.6",
|
||||||
"uuid": "^3.4.0"
|
"uuid": "^3.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^10.0.3",
|
"babel-eslint": "^10.1.0",
|
||||||
"eslint": "^6.8.0"
|
"eslint": "^6.8.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,23 +1,45 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const AvtocodProvider = require('../data_providers/avtocod');
|
const AvtocodProvider = require('../data_providers/avtocod');
|
||||||
|
const Vin01Provider = require('../data_providers/vin01');
|
||||||
|
|
||||||
const makeError = error => ({ success: false, error });
|
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 googleIdToken = req.body.googleIdToken;
|
||||||
|
const forceUpdate = req.body.forceUpdate.toLowerCase() == 'true';
|
||||||
const { login } = req.user;
|
const { login } = req.user;
|
||||||
|
|
||||||
|
//console.log('TOKEN: ', req.body.googleIdToken);
|
||||||
|
|
||||||
let collection = req.db.collection('vehicles');
|
let collection = req.db.collection('vehicles');
|
||||||
let vehicles = await collection.find({ number }).toArray();
|
let vehicles = await collection.find({ number }).toArray();
|
||||||
if(vehicles.length > 0) {
|
if(vehicles.length > 0 && !forceUpdate) {
|
||||||
res.send({ success: true, data: vehicles[0] });
|
res.send({ success: true, data: vehicles[0] });
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
let vehicle = await AvtocodProvider.getReport(number);
|
let autocodPromise = AvtocodProvider.getReport(number);
|
||||||
vehicle.addedBy = login;
|
let all = [autocodPromise];
|
||||||
await collection.insertOne(vehicle);
|
|
||||||
res.status(201).send({ success: true, data: vehicle });
|
if(googleIdToken) {
|
||||||
|
let vin01Promise = Vin01Provider.getVin(number, googleIdToken);
|
||||||
|
all.push(vin01Promise);
|
||||||
|
}
|
||||||
|
let [autocod, vin01] = await Promise.allSettled(all);
|
||||||
|
if(autocod.status == 'fulfilled') {
|
||||||
|
let vehicle = autocod.value;
|
||||||
|
vehicle.addedBy = login;
|
||||||
|
if(vin01?.status == 'fulfilled') {
|
||||||
|
vehicle.vin1 = vin01.value;
|
||||||
|
} else {
|
||||||
|
console.log(vin01.reason);
|
||||||
|
}
|
||||||
|
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
||||||
|
res.status(201).send({ success: true, data: vehicle });
|
||||||
|
} else {
|
||||||
|
throw Error(autocod.reason);
|
||||||
|
}
|
||||||
} catch(ex) {
|
} catch(ex) {
|
||||||
res.send(makeError(ex.message));
|
res.send(makeError(ex.message));
|
||||||
console.error(ex);
|
console.error(ex);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user