Skip to content
Snippets Groups Projects
process.js 1.2 KiB
Newer Older
import("Util_lib");
import("Sql_lib");
import("system.vars");


function CommunicationBlacklist () 
{
    this.filter = null;
}

/**
 * @return {CommunicationBlacklist}
 */
CommunicationBlacklist.getMailRecipientBlacklist = function ()
{
    var filters = newSelect("FILTER")
        .from("EMAIL_FILTER_HANDLING")
        .where("COMMUNICATIONBLACKLIST.BLACKLIST_TYPE", $KeywordRegistry.communicationBlacklistType$emailRecipientFilter())
        .table();
    
    var filterMappingFn = function ([blacklistFilter])
    {
        blacklistFilter = JSON.parse(blacklistFilter);
        if (!blacklistFilter.filter || blacklistFilter.entity != "BulkMailRecipient_entity" || Utils.isNullOrEmpty(blacklistFilter.filter.childs))
            return null;
        
        return blacklistFilter.filter;
    };
    
    var blacklist = new CommunicationBlacklist();
    blacklist.filter = {
        type: "group",
        operator: "AND",
        childs: filters.map(filterMappingFn).filter(Utils.isObject)
    };
    return blacklist;
}

CommunicationBlacklist.prototype.getCondition = function ()
{
    return new FilterSqlTranslator()
        .filter(this.filter)
        .table("BULKMAILRECIPIENT")
        .getSqlCondition();
}