UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

28 lines 1.31 kB
export const createGetActiveUsers = (db) => async () => { const combinedQuery = db .select('id as user_id', 'seen_at') .from('users') .unionAll(db.select('user_id', 'seen_at').from('personal_access_tokens')); const result = await db .with('Combined', combinedQuery) .select({ last_week: db.raw("COUNT(DISTINCT CASE WHEN seen_at > NOW() - INTERVAL '1 week' THEN user_id END)"), last_month: db.raw("COUNT(DISTINCT CASE WHEN seen_at > NOW() - INTERVAL '1 month' THEN user_id END)"), last_two_months: db.raw("COUNT(DISTINCT CASE WHEN seen_at > NOW() - INTERVAL '2 months' THEN user_id END)"), last_quarter: db.raw("COUNT(DISTINCT CASE WHEN seen_at > NOW() - INTERVAL '3 months' THEN user_id END)"), }) .from('Combined'); return { last7: Number.parseInt(result?.[0]?.last_week || '0', 10), last30: Number.parseInt(result?.[0]?.last_month || '0', 10), last60: Number.parseInt(result?.[0]?.last_two_months || '0', 10), last90: Number.parseInt(result?.[0]?.last_quarter || '0', 10), }; }; export const createFakeGetActiveUsers = (activeUsers = { last7: 0, last30: 0, last60: 0, last90: 0, }) => () => Promise.resolve(activeUsers); //# sourceMappingURL=getActiveUsers.js.map