Skip to content

Commit

Permalink
feat: add triggers as enum
Browse files Browse the repository at this point in the history
  • Loading branch information
utkarsh-dixit committed Mar 31, 2024
1 parent 0a720cd commit 675f64d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 3 deletions.
8 changes: 5 additions & 3 deletions core/composio/composio_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
from rich.console import Console
import termcolor
from uuid import getnode as get_mac
from .sdk.storage import get_user_connection, save_user_connection
from .sdk.core import ComposioCore
from .sdk.utils import generate_enums
from sdk.storage import get_user_connection, save_user_connection
from sdk.core import ComposioCore
from sdk.utils import generate_enums

import webbrowser

Expand Down Expand Up @@ -221,3 +221,5 @@ def main():
args.func(args)
else:
console.print("[red]Error: No valid command provided. Use --help for more information.[/red]")

main()
9 changes: 9 additions & 0 deletions core/composio/sdk/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,12 @@ def __init__(self, service, action):
NOTION_GET_ABOUT_ME = ("notion", "notion_get_about_me")
DROPBOX_GET_ABOUT_ME = ("dropbox", "dropbox_get_about_me")
TYPEFORM_GET_ABOUT_ME = ("typeform", "typeform_get_about_me")

class Trigger(Enum):
def __init__(self, service, trigger):
self.service = service
self.trigger = trigger

GITHUB_PULL_REQUEST_EVENT = ("github", "github_pull_request_event")
GITHUB_COMMIT_EVENT = ("github", "github_commit_event")
SLACK_NEW_MESSAGE = ("slack", "slack_receive_message")
14 changes: 14 additions & 0 deletions core/composio/sdk/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def generate_enums():
sdk_client = Composio("yw1qb4ls4340z696zh7sa")
apps = sdk_client.get_list_of_apps()
actions = sdk_client.get_list_of_actions()
triggers = sdk_client.get_list_of_triggers()

enum_content = 'from enum import Enum\n\n'
enum_content += 'class App(Enum):\n'
Expand All @@ -35,6 +36,19 @@ def generate_enums():
enum_name = f'{app_key.upper()}_{_get_enum_key(action["display_name"])}'
enum_value = f'("{app_key}", "{action["name"]}")'
enum_content += f' {enum_name} = {enum_value}\n'

enum_content += '\n'
enum_content += 'class Trigger(Enum):\n'
enum_content += ' def __init__(self, service, trigger):\n'
enum_content += ' self.service = service\n'
enum_content += ' self.trigger = trigger\n\n'
for app in apps["items"]:
app_key = app['key']
app_triggers = [trigger for trigger in triggers if trigger["appKey"] == app_key]
for trigger in app_triggers:
enum_name = f'{app_key.upper()}_{_get_enum_key(trigger["display_name"])}'
enum_value = f'("{app_key}", "{trigger["name"]}")'
enum_content += f' {enum_name} = {enum_value}\n'
# enum_content += f'Actions.{app_name} = {app_name}\n\n'
with open(os.path.join(os.path.dirname(__file__), 'enums.py'), 'w') as f:
f.write(enum_content)
Expand Down

0 comments on commit 675f64d

Please sign in to comment.