fix: Update code generation of Vehicle/User/Company/Load to avoid collisions
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
**/node_modules/
|
||||
**/.env
|
||||
**/package-lock.json
|
||||
**/migrate.js
|
||||
@@ -1,7 +1,6 @@
|
||||
"use strict";
|
||||
const { ROOT_PATH, LIB_PATH } = process.env;
|
||||
const { getModel } = require( '../../../lib/Models' );
|
||||
const { getPagination } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` );
|
||||
const { getPagination, genKey } = require( '../../../lib/Misc.js' );
|
||||
const { GenericHandler } = require( '../../../lib/Handlers/Generic.handler.js' );
|
||||
const Model = getModel('loads');
|
||||
const CompanyModel = getModel('companies');
|
||||
@@ -260,7 +259,7 @@ const postLoad = async(req, res) => {
|
||||
await load.save();
|
||||
|
||||
const id = "" + load._id;
|
||||
const shipment_code = "ETA-" + id.substring( 0 , 6 );
|
||||
const shipment_code = "ETA-" + genKey( 6, id );
|
||||
await Model.findByIdAndUpdate( id , {
|
||||
shipment_code
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
const { getModel } = require( '../../../lib/Models' );
|
||||
const { getPagination } = require( '../../../lib/Misc' );
|
||||
const { getPagination, genKey } = require( '../../../lib/Misc' );
|
||||
const { GenericHandler } = require( '../../../lib/Handlers/Generic.handler' );
|
||||
const Model = getModel('vehicles');
|
||||
const CompanyModel = getModel('companies');
|
||||
@@ -187,7 +187,7 @@ const postVehicle = async(req, res) => {
|
||||
|
||||
/// Use id to create vehicle_code
|
||||
const vehicle_id = "" + vehicle._id;
|
||||
const vehicle_code = "C-" + vehicle_id.substring( 0 , 6 );
|
||||
const vehicle_code = "C-" + genKey( 6, vehicle_id );
|
||||
await Model.findByIdAndUpdate( vehicle._id , {
|
||||
vehicle_code
|
||||
});
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
'user strict';
|
||||
const { ROOT_PATH, API_CONFIG, MODELS_PATH, LIB_PATH } = process.env;
|
||||
const { getModel } = require( `${ROOT_PATH}/${MODELS_PATH}` );
|
||||
const apiConfig = require( `${ROOT_PATH}/${API_CONFIG}` );
|
||||
const { toSha256 } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` );
|
||||
const { getModel } = require( '../../Models' );
|
||||
const apiConfig = require( '../../../config/apiConfig.json' );
|
||||
const { toSha256, genKey } = require( '../../Misc' );
|
||||
const UserModel = getModel('users');
|
||||
const companiesModels = getModel('companies');
|
||||
|
||||
@@ -112,7 +111,13 @@ async function complete_register( userId , data ){
|
||||
|
||||
/// Use company.id to create company_code
|
||||
const company_id = "" + company._id;
|
||||
const company_code = "C-" + company_id.substring( 0 , 6 );
|
||||
|
||||
let company_code = genKey( 6, company_id );
|
||||
if( company.company_type === "Shipper" ){
|
||||
company_code = "S-" + company_code
|
||||
}else{
|
||||
company_code = "C-" + company_code
|
||||
}
|
||||
await companiesModels.findByIdAndUpdate( company._id , {
|
||||
company_code
|
||||
});
|
||||
|
||||
@@ -154,7 +154,7 @@ async function createUserWithinCompany( companyId , data ){
|
||||
|
||||
// Create user code
|
||||
const id = "" + user._id;
|
||||
const employee_id = "E-" + id.substring( 0 , 6 );
|
||||
const employee_id = "E-" + genKey( 6, id );
|
||||
await usersModel.findByIdAndUpdate( id , {
|
||||
employee_id
|
||||
});
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
"use strict";
|
||||
const { ROOT_PATH, API_CONFIG } = process.env;
|
||||
const apiConfig = require( `${ROOT_PATH}/${API_CONFIG}` );
|
||||
const apiConfig = require( '../config/apiConfig.json' );
|
||||
const crypto = require('crypto');
|
||||
|
||||
const { S3Client, GetObjectCommand } = require('@aws-sdk/client-s3');
|
||||
@@ -35,9 +34,9 @@ function genKey( len = 5 , key="" ){
|
||||
throw "invalid key len";
|
||||
}
|
||||
const shacode = toSha256( key + new Date() + tokenSecret );
|
||||
const otp_hex = shacode.slice(0 , len );
|
||||
const otp_dec = Number.parseInt( otp_hex , 16 );
|
||||
return ""+otp_dec;
|
||||
/// 16 hex chars = 8 bytes = 64 bits integer
|
||||
const otp_str = "" + Number.parseInt( shacode.slice(0,16) , 16 );
|
||||
return otp_str.slice(0,len);
|
||||
}
|
||||
|
||||
function getPagination( query ){
|
||||
|
||||
Reference in New Issue
Block a user