34 lines
846 B
TypeScript
34 lines
846 B
TypeScript
import appConfig from '../../config/app';
|
|
import Context from '../../types/express/context';
|
|
|
|
// TODO: remove as getBillingAndUsageData query has been introduced
|
|
const getUsageData = async (
|
|
_parent: unknown,
|
|
_params: unknown,
|
|
context: Context
|
|
) => {
|
|
if (!appConfig.isCloud) return;
|
|
|
|
const usageData = await context.currentUser
|
|
.$relatedQuery('currentUsageData')
|
|
.throwIfNotFound();
|
|
|
|
const subscription = await usageData
|
|
.$relatedQuery('subscription')
|
|
.throwIfNotFound();
|
|
|
|
const plan = subscription.plan;
|
|
|
|
const computedUsageData = {
|
|
name: plan.name,
|
|
allowedTaskCount: plan.quota,
|
|
consumedTaskCount: usageData.consumedTaskCount,
|
|
remainingTaskCount: plan.quota - usageData.consumedTaskCount,
|
|
nextResetAt: usageData.nextResetAt,
|
|
};
|
|
|
|
return computedUsageData;
|
|
};
|
|
|
|
export default getUsageData;
|