apply linter and add useful comments to the util.js functions

This commit is contained in:
Pau 2023-01-09 13:35:05 +01:00
parent f79662beb6
commit 82b6fba8f8
12 changed files with 242 additions and 229 deletions

8
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,8 @@
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": [
"javascript"
]
}

View File

@ -6,9 +6,7 @@ dotenv.config();
import models from './models/index.js'; import models from './models/index.js';
let AccessToken = await getClientToken(models); let tokenExpirationDate = await getClientToken(models);
let tokenExpirationDate = AccessToken[1];
try { try {
setInterval(async () => { setInterval(async () => {
@ -17,8 +15,7 @@ try {
if (moment().isAfter(tokenExpirationDate)) { if (moment().isAfter(tokenExpirationDate)) {
console.log('Token expired, getting a new one...'); console.log('Token expired, getting a new one...');
AccessToken = await getClientToken(models); tokenExpirationDate = await getClientToken(models);
tokenExpirationDate = AccessToken[1];
} }
}, process.env.STATUS == 'development' ? 2500 : 5000); }, process.env.STATUS == 'development' ? 2500 : 5000);

View File

@ -1,31 +1,31 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const additionalPricePerPiece = { const additionalPricePerPiece = {
id: { id: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
packingConfigurationsFk: { packingConfigurationsFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
currency: { currency: {
type: Sequelize.STRING, type: Sequelize.STRING,
defaultValue: "EUR", defaultValue: 'EUR',
}, },
value: { value: {
type: Sequelize.DECIMAL(10, 2), type: Sequelize.DECIMAL(10, 2),
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const AdditionalPricePerPiece = sequelize.define( const AdditionalPricePerPiece = sequelize.define(
"FDadditionalPricePerPiece", 'FDadditionalPricePerPiece',
additionalPricePerPiece, additionalPricePerPiece,
{ {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
} }
); );
return AdditionalPricePerPiece; return AdditionalPricePerPiece;
}; };

View File

@ -1,18 +1,18 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const botanicalNames = { const botanicalNames = {
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
name: { name: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const BotanicalNames = sequelize.define("FDbotanicalNames", botanicalNames, { const BotanicalNames = sequelize.define('FDbotanicalNames', botanicalNames, {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
}); });
return BotanicalNames; return BotanicalNames;
}; };

View File

@ -1,25 +1,25 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const characteristics = { const characteristics = {
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
vnbCode: { vnbCode: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
vnbValueCode: { vnbValueCode: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const Characteristics = sequelize.define( const Characteristics = sequelize.define(
"FDcharacteristics", 'FDcharacteristics',
characteristics, characteristics,
{ {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
} }
); );
return Characteristics; return Characteristics;
}; };

View File

@ -1,33 +1,33 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const clientConfig = { const clientConfig = {
id: { id: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
clientId: { clientId: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
clientSecret: { clientSecret: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
currentToken: { currentToken: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
tokenExpiration: { tokenExpiration: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const ClientConfig = sequelize.define( const ClientConfig = sequelize.define(
"FDClientConfig", 'FDClientConfig',
clientConfig, clientConfig,
{ {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
} }
); );
return ClientConfig; return ClientConfig;
}; };

View File

@ -1,22 +1,22 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const countryOfOriginIsoCodes = { const countryOfOriginIsoCodes = {
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
isoCode: { isoCode: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const CountryOfOriginIsoCodes = sequelize.define( const CountryOfOriginIsoCodes = sequelize.define(
"FDcountryOfOriginIsoCodes", 'FDcountryOfOriginIsoCodes',
countryOfOriginIsoCodes, countryOfOriginIsoCodes,
{ {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
} }
); );
return CountryOfOriginIsoCodes; return CountryOfOriginIsoCodes;
}; };

View File

@ -1,26 +1,26 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const PackageModel = { const PackageModel = {
id: { id: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
packingConfigurationsFk: { packingConfigurationsFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
vbnPackageCode: { vbnPackageCode: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
customPackageId: { customPackageId: {
type: Sequelize.UUID, type: Sequelize.UUID,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const Package = sequelize.define("FDpackage", PackageModel, { const Package = sequelize.define('FDpackage', PackageModel, {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
}); });
return Package; return Package;
} };

View File

@ -1,48 +1,48 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const packingConfigurations = { const packingConfigurations = {
id: { id: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
piecesPerPackage: { piecesPerPackage: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
bunchesPerPackage: { bunchesPerPackage: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
photoUrl: { photoUrl: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
packagesPerLayer: { packagesPerLayer: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
layersPerLoadCarrier: { layersPerLoadCarrier: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
transportHeightInCm: { transportHeightInCm: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
loadCarrierType: { loadCarrierType: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
isPrimary: { isPrimary: {
type: Sequelize.BOOLEAN, type: Sequelize.BOOLEAN,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const PackingConfigurations = sequelize.define( const PackingConfigurations = sequelize.define(
"FDpackingConfigurations", 'FDpackingConfigurations',
packingConfigurations, packingConfigurations,
{ {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
} }
); );
return PackingConfigurations; return PackingConfigurations;
}; };

View File

@ -1,30 +1,30 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const photos = { const photos = {
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
photoId: { photoId: {
type: Sequelize.UUID, type: Sequelize.UUID,
}, },
url: { url: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
type: { type: {
type: Sequelize.STRING, type: Sequelize.STRING,
}, },
primary: { primary: {
type: Sequelize.BOOLEAN, type: Sequelize.BOOLEAN,
}, },
seasonalPeriodFk: { seasonalPeriodFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const Photos = sequelize.define("FDphotos", photos, { const Photos = sequelize.define('FDphotos', photos, {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
}); });
return Photos; return Photos;
} };

View File

@ -1,26 +1,26 @@
import { Sequelize } from "sequelize"; import { Sequelize } from 'sequelize';
const seasonalPeriod = { const seasonalPeriod = {
id: { id: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
tradeItemFk: { tradeItemFk: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
startWeek: { startWeek: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
endWeek: { endWeek: {
type: Sequelize.INTEGER, type: Sequelize.INTEGER,
}, },
}; };
export default (sequelize) => { export default (sequelize) => {
const SeasonalPeriod = sequelize.define("FDseasonalPeriod", seasonalPeriod, { const SeasonalPeriod = sequelize.define('FDseasonalPeriod', seasonalPeriod, {
timestamps: false, timestamps: false,
freezeTableName: true, freezeTableName: true,
}); });
return SeasonalPeriod; return SeasonalPeriod;
}; };

View File

@ -1,19 +1,23 @@
import moment from 'moment'; import moment from 'moment';
import fetch from 'node-fetch'; import fetch from 'node-fetch';
/**
* The Endpoint where the Access Token is requested
*/
const _accessTokenEndpoint = 'https://idm.staging.floriday.io/oauth2/ausmw6b47z1BnlHkw0h7/v1/token';
const _accessTokenEndpoint = /**
'https://idm.staging.floriday.io/oauth2/ausmw6b47z1BnlHkw0h7/v1/token'; * Gets the Access Token from the client config table
*
* @param {sequelize.models} models
* @returns {Date} tokenExpirationDate formated as YYYY-MM-DD HH:mm:ss
*/
async function getClientToken(models) { async function getClientToken(models) {
const clientConfigData = await models.clientConfig.findAll(); const clientConfigData = await models.clientConfig.findAll();
const now = moment().format('YYYY-MM-DD HH:mm:ss'); const now = moment().format('YYYY-MM-DD HH:mm:ss');
const tokenExpirationDate = clientConfigData[0].tokenExpiration; const tokenExpirationDate = clientConfigData[0].tokenExpiration;
if ( if (clientConfigData[0].tokenExpiration == null || moment(now).isAfter(tokenExpirationDate)) {
clientConfigData[0].tokenExpiration == null ||
moment(now).isAfter(tokenExpirationDate)
) {
let clientId = clientConfigData[0].clientId; let clientId = clientConfigData[0].clientId;
let clientSecret = clientConfigData[0].clientSecret; let clientSecret = clientConfigData[0].clientSecret;
@ -50,20 +54,24 @@ async function getClientToken(models) {
tokenExpirationDate tokenExpirationDate
); );
return [accessToken, tokenExpirationDate]; return tokenExpirationDate;
} else { } else {
console.log('Using the current token...'); console.log('Using the current token...');
return [clientConfigData[0].currentToken, tokenExpirationDate]; return tokenExpirationDate;
} }
} }
async function updateClientConfig(
models, /**
clientId, * Updates the Access Token in the client config table
clientSecret, *
accessToken, * @param {sequelize.models} models
tokenExpirationDate * @param {String} clientId
) { * @param {String} clientSecret
* @param {String} accessToken
* @param {String} tokenExpirationDate
*/
async function updateClientConfig(models, clientId, clientSecret, accessToken, tokenExpirationDate) {
try { try {
console.log('Updating the client config with the new token...'); console.log('Updating the client config with the new token...');
await models.clientConfig.update( await models.clientConfig.update(
@ -87,4 +95,4 @@ async function updateClientConfig(
} }
} }
export { getClientToken }; export { getClientToken, updateClientConfig };