Skip to content

Filtering & Sorting

Pass a modifier to fetch_all to filter or sort results. Modifiers chain with +.

Filtering by a single field

python
import asyncio
from cacholong_sdk import connection, DnsZone, Filter

async def main():
    async with connection("https://api.cacholong.eu/api/v1/", "YOUR-API-KEY") as api:
        ctrl = DnsZone(api)
        mod = Filter(account="ACCOUNT-UUID")
        async for zone in ctrl.fetch_all(mod):
            print(zone["domain"])

asyncio.run(main())

Combining multiple filters

Chain filters with +:

python
import asyncio
from cacholong_sdk import connection, DnsZone, Filter

async def main():
    async with connection("https://api.cacholong.eu/api/v1/", "YOUR-API-KEY") as api:
        ctrl = DnsZone(api)
        mod = Filter(active="true") + Filter(dnssec="true")
        async for zone in ctrl.fetch_all(mod):
            print(zone["domain"])

asyncio.run(main())

Sorting

Use Sort("field") for ascending order and Sort("-field") for descending (prefix -):

python
import asyncio
from cacholong_sdk import connection, DnsZone, Sort

async def main():
    async with connection("https://api.cacholong.eu/api/v1/", "YOUR-API-KEY") as api:
        ctrl = DnsZone(api)
        mod = Sort("domain")           # ascending
        # mod = Sort("-domain")        # descending
        async for zone in ctrl.fetch_all(mod):
            print(zone["domain"])

asyncio.run(main())

Combining filters and sorting

Any modifiers chain with +:

python
import asyncio
from cacholong_sdk import connection, DnsZone, Filter, Sort

async def main():
    async with connection("https://api.cacholong.eu/api/v1/", "YOUR-API-KEY") as api:
        ctrl = DnsZone(api)
        mod = Filter(account="ACCOUNT-UUID") + Sort("-domain")
        async for zone in ctrl.fetch_all(mod):
            print(zone["domain"])

asyncio.run(main())