MCPcopy Index your code
hub / github.com/simstudioai/sim / getUserLimits

Function getUserLimits

apps/sim/app/api/v1/logs/meta.ts:29–64  ·  view source on GitHub ↗
(userId: string)

Source from the content-addressed store, hash-verified

27}
28
29export async function getUserLimits(userId: string): Promise<UserLimits> {
30 const [userSubscription, usageCheck, effectiveCost, rateLimiter] = await Promise.all([
31 getHighestPrioritySubscription(userId),
32 checkServerSideUsageLimits(userId),
33 getEffectiveCurrentPeriodCost(userId),
34 Promise.resolve(new RateLimiter()),
35 ])
36
37 const [syncStatus, asyncStatus] = await Promise.all([
38 rateLimiter.getRateLimitStatusWithSubscription(userId, userSubscription, 'api', false),
39 rateLimiter.getRateLimitStatusWithSubscription(userId, userSubscription, 'api', true),
40 ])
41
42 return {
43 workflowExecutionRateLimit: {
44 sync: {
45 requestsPerMinute: syncStatus.requestsPerMinute,
46 maxBurst: syncStatus.maxBurst,
47 remaining: syncStatus.remaining,
48 resetAt: syncStatus.resetAt.toISOString(),
49 },
50 async: {
51 requestsPerMinute: asyncStatus.requestsPerMinute,
52 maxBurst: asyncStatus.maxBurst,
53 remaining: asyncStatus.remaining,
54 resetAt: asyncStatus.resetAt.toISOString(),
55 },
56 },
57 usage: {
58 currentPeriodCost: effectiveCost,
59 limit: usageCheck.limit,
60 plan: userSubscription?.plan || 'free',
61 isExceeded: usageCheck.isExceeded,
62 },
63 }
64}
65
66export function createApiResponse<T>(
67 data: T,

Callers 9

route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90

Tested by

no test coverage detected