diff --git a/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py new file mode 100644 index 00000000..288bd877 --- /dev/null +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py @@ -0,0 +1,21 @@ +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.GOOGLE_PROVIDER import GOOGLE_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.GITHUB_PROVIDER import GITHUB_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.SLACK_PROVIDER import SLACK_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.NOTION_PROVIDER import NOTION_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.SPOTIFY_PROVIDER import SPOTIFY_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.FIGMA_PROVIDER import FIGMA_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.AIRTABLE_PROVIDER import AIRTABLE_PROVIDER +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.providers.HUBSPOT_PROVIDER import HUBSPOT_PROVIDER + + +OAUTH_PROVIDERS: dict[str, OAuthProvider] = { + "google": GOOGLE_PROVIDER, + "github": GITHUB_PROVIDER, + "slack": SLACK_PROVIDER, + "notion": NOTION_PROVIDER, + "spotify": SPOTIFY_PROVIDER, + "figma": FIGMA_PROVIDER, + "airtable": AIRTABLE_PROVIDER, + "hubspot": HUBSPOT_PROVIDER, +} diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/OAuthProvider.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/OAuthProvider.py similarity index 100% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/OAuthProvider.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/OAuthProvider.py diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py similarity index 91% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py index d653bc28..5d1142c4 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/AIRTABLE_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py similarity index 90% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py index 51712ff4..972157d7 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/FIGMA_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py similarity index 89% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py index c68c2f7d..8c988838 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GITHUB_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py similarity index 93% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py index a53bbadd..f79fd045 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/GOOGLE_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py similarity index 89% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py index 97695fed..82d2fdeb 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/HUBSPOT_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py similarity index 86% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py index 9c36e58f..bf743d5a 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/NOTION_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider # TODO: why doesn't notion have any client id or secret? diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py similarity index 92% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py index 68f69ddf..e240c47b 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SLACK_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider import os # TODO: wtf is this, bruh we gotta remove this shit asap r u fr rn. Unacceptable. diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py similarity index 91% rename from backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py rename to backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py index 0d80514d..50da54e2 100644 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py +++ b/backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers/SPOTIFY_PROVIDER.py @@ -1,4 +1,4 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider # TODO: why doesn't spotify have any client id or secret? diff --git a/backend/apps/tools/oauth/OAuthService.py b/backend/apps/tools/OAuthService/OAuthService.py similarity index 97% rename from backend/apps/tools/oauth/OAuthService.py rename to backend/apps/tools/OAuthService/OAuthService.py index 876149d0..f132add3 100644 --- a/backend/apps/tools/oauth/OAuthService.py +++ b/backend/apps/tools/OAuthService/OAuthService.py @@ -15,8 +15,8 @@ from urllib.parse import urlencode import httpx from pydantic import BaseModel, Field from typing import Dict -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAUTH_PROVIDERS import OAUTH_PROVIDERS +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAUTH_PROVIDERS import OAUTH_PROVIDERS from backend.apps.tools.shared_utils.ToolDefinition import ToolDefinition from backend.core.db.PydanticStore import PydanticStore from typeguard import typechecked @@ -250,7 +250,7 @@ class OAuthService(BaseModel): ) -> Optional[str]: try: async with httpx.AsyncClient(timeout=10.0) as client: - resp = await client.get(url, headers={"Authorization": f"Bearer {access_token}"}) + resp: httpx.Response = await client.get(url, headers={"Authorization": f"Bearer {access_token}"}) if resp.status_code == 200: return resp.json().get(field) except Exception as e: diff --git a/backend/apps/tools/oauth/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py b/backend/apps/tools/oauth/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py deleted file mode 100644 index b402f0e7..00000000 --- a/backend/apps/tools/oauth/OAUTH_PROVIDERS/OAUTH_PROVIDERS.py +++ /dev/null @@ -1,21 +0,0 @@ -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAuthProvider import OAuthProvider -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.GOOGLE_PROVIDER import GOOGLE_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.GITHUB_PROVIDER import GITHUB_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.SLACK_PROVIDER import SLACK_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.NOTION_PROVIDER import NOTION_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.SPOTIFY_PROVIDER import SPOTIFY_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.FIGMA_PROVIDER import FIGMA_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.AIRTABLE_PROVIDER import AIRTABLE_PROVIDER -from backend.apps.tools.oauth.OAUTH_PROVIDERS.providers.HUBSPOT_PROVIDER import HUBSPOT_PROVIDER - - -OAUTH_PROVIDERS: dict[str, OAuthProvider] = { - "google": GOOGLE_PROVIDER, - "github": GITHUB_PROVIDER, - "slack": SLACK_PROVIDER, - "notion": NOTION_PROVIDER, - "spotify": SPOTIFY_PROVIDER, - "figma": FIGMA_PROVIDER, - "airtable": AIRTABLE_PROVIDER, - "hubspot": HUBSPOT_PROVIDER, -} diff --git a/backend/apps/tools/tools.py b/backend/apps/tools/tools.py index 740be85e..fe118d33 100644 --- a/backend/apps/tools/tools.py +++ b/backend/apps/tools/tools.py @@ -20,8 +20,8 @@ from backend.apps.tools.shared_utils.ToolDefinition import ToolDefinition from backend.apps.tools.discover_tools.discover_tools import discover_tools from backend.apps.tools.discover_tools.DiscoveryError import DiscoveryError, DiscoveryConfigError from backend.apps.tools.tool_definition_to_mcp_tool.tool_definition_to_mcp_tool import tool_definition_to_mcp_tool -from backend.apps.tools.oauth.OAuthService import OAuthService -from backend.apps.tools.oauth.OAUTH_PROVIDERS.OAUTH_PROVIDERS import OAUTH_PROVIDERS +from backend.apps.tools.OAuthService.OAuthService import OAuthService +from backend.apps.tools.OAuthService.OAUTH_PROVIDERS.OAUTH_PROVIDERS import OAUTH_PROVIDERS from backend.apps.tools.builtin_tools import BUILTIN_TOOLS from backend.core.tools.shared_structs.TOOL_PERMISSIONS import TOOL_PERMISSIONS from backend.core.tools.shared_structs.Toolkit import Toolkit diff --git a/linter/config/config.json b/linter/config/config.json index 7a46489d..d2e5a6a2 100644 --- a/linter/config/config.json +++ b/linter/config/config.json @@ -39,7 +39,7 @@ "max-folder-items": [ "frontend", "backend", - "backend/apps/tools/oauth/OAUTH_PROVIDERS/providers" + "backend/apps/tools/OAuthService/OAUTH_PROVIDERS/providers" ], "no-nested-imports": ["linter/lint.py"], "vulture": [],