reldens
Version:
Reldens - MMORPG Platform
53 lines (47 loc) • 1.47 kB
JavaScript
/**
*
* Reldens - AdsProvider
*
* Utility class for filtering and fetching active ads by provider ID and type.
*
*/
const { Logger } = require('@reldens/utils');
class AdsProvider
{
/**
* @param {number} providerId
* @param {Array<string>} validAdsTypes
* @param {Object<string, Object>} availableAds
* @returns {Object<string, Object>}
*/
static fetchActiveAdsByProviderId(providerId, validAdsTypes, availableAds)
{
if(!providerId){
return {};
}
let adsKeys = Object.keys(availableAds);
if(0 === adsKeys.length){
return {};
}
let adsCollection = {};
for(let i of adsKeys){
let ad = availableAds[i];
if(providerId !== ad.provider.id){
// Logger.info('Filtered ad by provider ID.', {expectedId: providerId, adProviderId: ad.provider.id});
continue;
}
if(!ad.enabled){
Logger.info('Ad not enabled.', ad);
continue;
}
if(-1 === validAdsTypes.indexOf(ad.type.key)){
Logger.info('Invalid ad type.', ad);
continue;
}
adsCollection[i] = ad;
}
Logger.info({providerId, activeProviderAds: adsCollection});
return adsCollection;
}
}
module.exports.AdsProvider = AdsProvider;