maestro-server/report-app

View on GitHub
app/services/filter.py

Summary

Maintainability
A
0 mins
Test Coverage
F
37%
from pydash.objects import defaults, get, merge
from app.services.rules.ruler import Ruler


class FilterAPI(object):
    def __init__(self):
        self.__filter = {}
        self.__default = {}

    def setDefault(self, default):
        self.__filter = defaults(self.__filter, default)
        return self

    def addFilters(self, key, rule):
        rule = Ruler.searchID(key, rule)
        rule = Ruler.translateLists(key, rule)
        rule = Ruler.searchAt(key, rule)

        obj = {key: rule}
        self.__filter = merge(self.__filter, obj)

        return self

    def addBatchFilters(self, arr):
        for key, item in arr.items():
            self.addFilters(key, item)

        return self

    def get(self, key):
        return get(self.__filter, key)

    def make(self):
        return self.__filter