"""Company Brand Resource Getters.""" from dataclasses import asdict from typing import Any from ddtrace import tracer from account.constants.tenants import COMPANY_BRAND_TENANT_TYPE from account.logic.resource_getters.attributes import Attributes, Tenant from account.models.company_brand import lookup_company_brands_by_names class CompanyBrandByNameResourceGetter: def __init__(self, company_brand: str): self.company_brand = company_brand @tracer.wrap() def get_attributes(self, *args: Any, **kwargs: Any) -> dict[str, Any]: """Get resource attributes about company_brand for AuthorizationBackend.""" response = lookup_company_brands_by_names([self.company_brand]) if not response: return {} if not response.message: return {} if not isinstance(response.message, list): return {} company_brand_data = response.message[0] if 'uuid' not in company_brand_data: return {} tenant = Tenant( tenant_uuid=company_brand_data['uuid'], tenant_type=COMPANY_BRAND_TENANT_TYPE, ) if 'parent_company_uuid' in company_brand_data: tenant.tenant_hierarchy = [company_brand_data['parent_company_uuid']] attributes = Attributes( tenant=tenant, name=self.company_brand, # PDP doesn't need this, but send it anyway for viz ) return asdict(attributes)