from typing import Dict
from pypipedrive.api import V1
from pypipedrive.utils import warn_endpoint_legacy
from pypipedrive.orm.model import Model
from pypipedrive.orm import fields as F
[docs]class Filters(Model):
"""
Each filter is essentially a set of data validation conditions. A filter
of the same kind can be applied when fetching a list of deals, leads,
persons, organizations or products in the context of a pipeline. Filters
are limited to a maximum of 16 conditions. When applied, only items matching
the conditions of the filter are returned. Detailed definitions of filter
conditions and additional functionality is not yet available.
See `Filters API reference <https://developers.pipedrive.com/docs/api/v1/Filters>`_.
Get all filters.
* GET[Cost:20] ``v1/filters``
Get all filter helpers.
* GET[Cost:20] ``v1/filters/helpers``
Get one filter.
* GET[Cost:2] ``v1/filters/{id}``
Add a new filter.
* POST[Cost:10] ``v1/filters``
Update filter.
* PUT[Cost:10] ``v1/filters/{id}``
Delete multiple filters in bulk.
* DELETE[Cost:10] ``v1/filters``
Delete a filter.
* DELETE[Cost:6] ``v1/filters/{id}``
"""
id = F.IntegerField("id", readonly=True)
name = F.TextField("name")
active_flag = F.BooleanField("active_flag")
type = F.TextField("type")
temporary_flag = F.BooleanField("temporary_flag")
user_id = F.IntegerField("user_id")
add_time = F.DatetimeField("add_time")
update_time = F.DatetimeField("update_time")
visible_to = F.BooleanField("visible_to")
custom_view_id = F.IntegerField("custom_view_id")
class Meta:
entity_name = "filters"
version = V1
[docs] @warn_endpoint_legacy
@classmethod
def helpers(cls) -> Dict:
"""
Returns all supported filter helpers. It helps to know what conditions
and helpers are available when you want to add or update filters. For
more information, see the tutorial for `adding a filter <https://pipedrive.readme.io/docs/adding-a-filter>`_.
Returns:
A dictionary containing filter helpers (operators,
deprecated_operators, relative_dates, address_field_components).
"""
uri = f"{cls._get_meta('entity_name')}/helpers"
return cls.get_api(version=V1).get(uri).to_dict()