Skip to content

Commit 55b3028

Browse files
[Fix] Show No Op adapters in UI only for zipstack and unstract domain emails (#1046)
* added fix to filter noOp adapters for common users * added enum for allowed domains --------- Co-authored-by: Gayathri <142381512+gaya3-zipstack@users.noreply.github.com>
1 parent eff8f54 commit 55b3028

3 files changed

Lines changed: 24 additions & 4 deletions

File tree

backend/adapter_processor_v2/adapter_processor.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import Any, Optional
44

55
from account_v2.models import User
6-
from adapter_processor_v2.constants import AdapterKeys
6+
from adapter_processor_v2.constants import AdapterKeys, AllowedDomains
77
from adapter_processor_v2.exceptions import (
88
InternalServiceError,
99
InValidAdapterId,
@@ -44,17 +44,25 @@ def get_json_schema(adapter_id: str) -> dict[str, Any]:
4444
return schema_details
4545

4646
@staticmethod
47-
def get_all_supported_adapters(type: str) -> list[dict[Any, Any]]:
47+
def get_all_supported_adapters(user_email: str, type: str) -> list[dict[Any, Any]]:
4848
"""Function to return list of all supported adapters."""
4949
supported_adapters = []
5050
updated_adapters = []
5151
updated_adapters = AdapterProcessor.__fetch_adapters_by_key_value(
5252
AdapterKeys.ADAPTER_TYPE, type
5353
)
54+
is_special_user = any(
55+
identifier in user_email for identifier in AllowedDomains.list()
56+
)
57+
5458
for each_adapter in updated_adapters:
59+
adapter_id = each_adapter.get(AdapterKeys.ID)
60+
if not is_special_user and adapter_id.startswith("noOp"):
61+
continue
62+
5563
supported_adapters.append(
5664
{
57-
AdapterKeys.ID: each_adapter.get(AdapterKeys.ID),
65+
AdapterKeys.ID: adapter_id,
5866
AdapterKeys.NAME: each_adapter.get(AdapterKeys.NAME),
5967
AdapterKeys.DESCRIPTION: each_adapter.get(AdapterKeys.DESCRIPTION),
6068
AdapterKeys.ICON: each_adapter.get(AdapterKeys.ICON),

backend/adapter_processor_v2/constants.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from enum import Enum
2+
3+
14
class AdapterKeys:
25
JSON_SCHEMA = "json_schema"
36
ADAPTER_TYPE = "adapter_type"
@@ -27,3 +30,12 @@ class AdapterKeys:
2730
ADAPTER_NAME = "adapter_name"
2831
ADAPTER_CREATED_BY = "created_by_email"
2932
ADAPTER_CONTEXT_WINDOW_SIZE = "context_window_size"
33+
34+
35+
class AllowedDomains(Enum):
36+
ZIPSTACK = "@zipstack.com"
37+
UNSTRACT = "@unstract.com"
38+
39+
@staticmethod
40+
def list():
41+
return list(map(lambda c: c.value, AllowedDomains))

backend/adapter_processor_v2/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def list(
9595
or adapter_type == AdapterKeys.OCR
9696
):
9797
json_schema = AdapterProcessor.get_all_supported_adapters(
98-
type=adapter_type
98+
type=adapter_type, user_email=request.user.email
9999
)
100100
return Response(json_schema, status=status.HTTP_200_OK)
101101
else:

0 commit comments

Comments
 (0)