diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte index 13d23f6a51..3bb7050c43 100644 --- a/packages/builder/src/pages/builder/portal/apps/index.svelte +++ b/packages/builder/src/pages/builder/portal/apps/index.svelte @@ -20,7 +20,7 @@ import { store, automationStore } from "builderStore" import { API } from "api" import { onMount } from "svelte" - import { apps, auth, admin, templates } from "stores/portal" + import { apps, auth, admin, templates, licensing } from "stores/portal" import download from "downloadjs" import { goto } from "@roxi/routify" import AppRow from "components/start/AppRow.svelte" @@ -243,6 +243,10 @@ notifications.error("Error loading apps and templates") } loaded = true + + //Testing + await licensing.getQuotaUsage() + await licensing.getTestData() }) diff --git a/packages/builder/src/stores/portal/licensing.js b/packages/builder/src/stores/portal/licensing.js index 653dab52ed..40bfcff323 100644 --- a/packages/builder/src/stores/portal/licensing.js +++ b/packages/builder/src/stores/portal/licensing.js @@ -1,5 +1,6 @@ -import { writable } from "svelte/store" +import { writable, get } from "svelte/store" import { API } from "api" +import { auth } from "stores/portal" export const createLicensingStore = () => { const DEFAULT = { @@ -18,6 +19,66 @@ export const createLicensingStore = () => { } }) }, + getTestData: async () => { + const tenantId = get(auth).tenantId + console.log("Tenant ", tenantId) + + const license = get(auth).user.license + console.log("User LICENSE ", license) + + // Pull out the usage. + const quota = get(store).quotaUsage + console.log("Quota usage", quota) + + // Would only initialise the usage elements if the account element is present. + console.log("User account ", get(auth).user.account) + + //separate into functions that pass in both the usage and quota + //easier to test + + const getMonthlyMetrics = (license, quota) => { + return ["sessions", "queries", "automations"].reduce((acc, key) => { + const quotaLimit = license.quotas.usage.monthly[key].value + acc[key] = + quotaLimit > -1 + ? (quota.monthly.current[key] / quotaLimit) * 100 + : -1 + return acc + }, {}) + } + + const getStaticMetrics = (license, quota) => { + return ["apps", "rows"].reduce((acc, key) => { + const quotaLimit = license.quotas.usage.monthly[key].value + acc[key] = + quotaLimit > -1 ? (quota.usageQuota[key] / quotaLimit) * 100 : -1 + return acc + }, {}) + } + + const modQuotaStr = JSON.stringify(quota) + const cloneQuota = JSON.parse(modQuotaStr) + cloneQuota.monthly.current.sessions = 4 + + const monthlyMetrics = getMonthlyMetrics(license, cloneQuota) + const staticMetrics = getStaticMetrics(license, cloneQuota) + + console.log("Monthly Usage Metrics ", monthlyMetrics) + console.log("Static Usage Metrics ", staticMetrics) + + const flagged = Object.keys(monthlyMetrics).filter(key => { + return monthlyMetrics[key] >= 100 + }) + + console.log(flagged) + + // store.update(state => { + // return { + // ...state, + // metrics, + // } + // }) + }, } return {