schon/core/utils/vendors.py
Egor fureunoir Gorbunov 45d20bc17e Features: 1) Add integration_path filter to active vendor query in get_vendors_integrations;
Fixes: 1) Ensure only vendors with a valid integration_path are included in the results;

Extra: 1) Adjust query formatting for improved readability.
2025-10-21 12:40:21 +03:00

27 lines
892 B
Python

from typing import Type
from core.models import Vendor
from core.vendors import AbstractVendor
from evibes.utils.misc import create_object
def get_vendors_integrations(name: str | None = None) -> list[Type[AbstractVendor]]:
vendors_integrations: list[Type[AbstractVendor]] = []
vendors = (
Vendor.objects.filter(
is_active=True,
integration_path__isnull=False,
name=name,
)
if name
else Vendor.objects.filter(
is_active=True,
integration_path__isnull=False,
)
)
for vendor in vendors:
if vendor.integration_path:
module_name = ".".join(vendor.integration_path.split(".")[:-1])
class_name = vendor.integration_path.split(".")[-1]
vendors_integrations.append(create_object(module_name, class_name))
return vendors_integrations