Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Actions parity in TS SDK #991

Merged
merged 27 commits into from
Dec 12, 2024
Merged
Changes from 5 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
46072fb
added 10mb max buffer size
plxity Dec 11, 2024
3b3fec1
ran prettier
plxity Dec 11, 2024
3872ed9
fixed action cli in TS
plxity Dec 11, 2024
b3804c9
fixed action cli in TS
plxity Dec 11, 2024
e899b48
Merge branch 'master' of https://github.com/ComposioHQ/composio into …
plxity Dec 11, 2024
afb4e26
fixed action cli in TS
plxity Dec 11, 2024
bde0b4a
Merge branch 'master' into fix-cli-parity-3
plxity Dec 11, 2024
9e0b2fd
fixed action cli in TS
plxity Dec 11, 2024
f88ccd6
Merge branch 'fix-cli-parity-3' of https://github.com/ComposioHQ/comp…
plxity Dec 11, 2024
1ccdf0d
fixed action cli in TS
plxity Dec 11, 2024
1196135
fixed action cli in TS
plxity Dec 11, 2024
8d890c9
fixed action cli in TS
plxity Dec 11, 2024
5e81f83
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
cd42f57
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
a0adee3
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
7ac89f3
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
854f095
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
4002cc7
fixed action cli in TS
plxity Dec 11, 2024
0145807
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
c94337b
fixed actions cli
plxity Dec 12, 2024
a25004e
fixed actions cli
plxity Dec 12, 2024
2aa2d18
Merge branch 'master' into fix-cli-parity-3
plxity Dec 12, 2024
4f575b3
changed max warning
plxity Dec 12, 2024
02dd841
Merge branch 'fix-cli-parity-3' of https://github.com/ComposioHQ/comp…
plxity Dec 12, 2024
02c31ec
changed max warning
plxity Dec 12, 2024
1c6cb24
fixed prettier
plxity Dec 12, 2024
0a30bf7
changed workflow
plxity Dec 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions js/src/cli/actions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import chalk from "chalk";
import { Command } from "commander";
import client from "../sdk/client/client";
import { getOpenAPIClient } from "../sdk/utils/config";
import { ListActionsV2Data } from "../sdk/client";

export default class ActionCommand {
private program: Command;

constructor(program: Command) {
this.program = program;
this.program
.command("actions")
.description("Composio Actions")
.option(
"-a, --apps <appName>",
"List all actions for the given apps",
(value, previous: string[]) => previous.concat([value]),
[]
)
.option(
"--tags <tagName>",
"List all actions for the given tags",
(value, previous: string[]) => previous.concat([value]),
[]
)
.option("--use-case", "Search for actions based on the given use case")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The --use-case option is defined but not used in the command options. Consider adding <useCase> to the option definition to accept a value.

.option("--limit <limit>", "Limit the number of actions to display")
.option("--enabled", "Only show enabled actions")
.action(this.handleAction.bind(this));
}

private async handleAction(options: {
apps?: string[];
tags?: string[];
useCase?: string;
limit?: number;
enabled?: boolean;
copy?: boolean;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The copy option is defined but not used. Consider removing it if it's not needed.

}): Promise<void> {
getOpenAPIClient();
const { apps = [], tags = [], useCase, limit, enabled } = options;
if (apps) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The check if (apps) is unnecessary because apps is always initialized as an empty array. Consider removing this check.

const data: ListActionsV2Data = {
query: {},
};
if (data?.query) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The if (data?.query) check is redundant since we just created the data object with a query property. Consider simplifying this by directly setting the query parameters.

if (tags) {
data.query.tags = tags.join(",");
}
if (limit) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding validation for the limit parameter to ensure it's a positive number. Currently, negative or zero values could cause unexpected behavior.

data.query.limit = limit;
}
if (enabled) {
data.query.showEnabledOnly = enabled;
}
if (useCase) {
data.query.useCase = useCase;
}
data.query.apps = apps.join(",");
}

try {
const response = await client.actionsV2.listActionsV2(data);
if (response.data?.items.length === 0) {
console.log(chalk.yellow("No actions found"));
return;
}
console.log(chalk.green("Here are the actions for the app:"));
console.log("");
// render list
const actions = response.data?.items || [];
actions.forEach((action) => console.log(action.name));
} catch (error) {
console.log(chalk.red((error as any).message));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error type casting to any is not type-safe. Consider creating a proper error interface or using a more specific error type from the SDK.

return;
}
}
}
}
Loading