diff --git a/.gitignore b/.gitignore index a5ab63d..0400168 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ **/node_modules/ **/.env **/package-lock.json +**/migrate.js \ No newline at end of file diff --git a/v1/src/apps/private/loads/services.js b/v1/src/apps/private/loads/services.js index c1490c9..b658f6e 100644 --- a/v1/src/apps/private/loads/services.js +++ b/v1/src/apps/private/loads/services.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 }); diff --git a/v1/src/apps/private/vehicles/services.js b/v1/src/apps/private/vehicles/services.js index bead205..49bfdc1 100644 --- a/v1/src/apps/private/vehicles/services.js +++ b/v1/src/apps/private/vehicles/services.js @@ -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 }); diff --git a/v1/src/lib/Handlers/Account/index.js b/v1/src/lib/Handlers/Account/index.js index 45a1111..ec6bdc3 100644 --- a/v1/src/lib/Handlers/Account/index.js +++ b/v1/src/lib/Handlers/Account/index.js @@ -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 }); diff --git a/v1/src/lib/Handlers/Users.handler.js b/v1/src/lib/Handlers/Users.handler.js index 975e22e..edf1750 100644 --- a/v1/src/lib/Handlers/Users.handler.js +++ b/v1/src/lib/Handlers/Users.handler.js @@ -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 }); diff --git a/v1/src/lib/Misc.js b/v1/src/lib/Misc.js index 7f806eb..bbb54ba 100644 --- a/v1/src/lib/Misc.js +++ b/v1/src/lib/Misc.js @@ -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 ){