alwaysai
Version:
The alwaysAI command-line interface (CLI)
36 lines (30 loc) • 1.06 kB
text/typescript
import { CliTerseError } from '@alwaysai/alwayscli';
import { CliAuthenticationClient, CliRpcClient } from '../../infrastructure';
import { getUpgradeUrl } from './check-for-project-id';
export async function checkPaidPlan() {
const { username } = await CliAuthenticationClient().getInfo();
const client = CliRpcClient();
const teams = await client.listTeamsUserIsOwner({ user_name: username });
if (teams.length === 0) {
throw new CliTerseError(
'You are not a member of a team, please join a team to continue.'
);
}
// FIXME: Handle multiple teams
const teamLimits = await client.checkTeamLimits({
team_id: teams[0].id
});
const planName = teamLimits['plan_name'];
if (planName === 'Free' || planName === 'unknown') {
return false;
}
return true;
}
export async function requirePaidPlan() {
const isPaid = await checkPaidPlan();
if (!isPaid) {
throw new CliTerseError(
`This feature is only available for Basic or Premium users. Please upgrade to continue: ${getUpgradeUrl()}`
);
}
}