9df4867fca
* WIP License server * WIP * Moves locations to App Store and Core * LocationType fixes * Runs db migrations post-deploy * WIP * WIP * Cleanup * WIP * WIP * Decouples translations from NavTabs * Adds admin submodule * Adds admin submodule * Sync dependencies * WIP * WIP * Updates submodules * Renames package * Updates submodules * Adds scripts for console * Updates license checker URL * Updates admin * Adds staging/prod admin console links * Update yarn.lock * Update NavTabs.tsx * WIP * Update admin * WIP * Adds hint to InputField * Update admin * Adds turbo admin dependecies * Update admin * Prevents redirection on form submit * Form warning fixes * Update admin * Form fixes * Update yarn.lock * Update admin * Update admin * Update admin * Adds withLicenseRequired HOC * Adds LicenseRequired to EE components * Admin deploy fix? * Updates submodules * Use relative inside lib * type fixes * Fixes turbo race condition * Relocates admin to console * Relocates admin to console * Update console * Update api * Update turbo.json * Update ErrorBoundary.tsx * Update defaultEvents.ts * Update checkLicense.ts * Update yarn.lock * Skip on E2E Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
26 lines
679 B
TypeScript
26 lines
679 B
TypeScript
import cache from "memory-cache";
|
|
|
|
import { CONSOLE_URL } from "@calcom/lib/constants";
|
|
|
|
const CACHING_TIME = 86400000; // 24 hours in milliseconds
|
|
|
|
async function checkLicense(license: string): Promise<boolean> {
|
|
if (!!process.env.NEXT_PUBLIC_IS_E2E) return true;
|
|
const url = `${CONSOLE_URL}/api/license?key=${license}`;
|
|
const cachedResponse = cache.get(url);
|
|
if (cachedResponse) {
|
|
return cachedResponse;
|
|
} else {
|
|
try {
|
|
const response = await fetch(url);
|
|
const data = await response.json();
|
|
cache.put(url, data.valid, CACHING_TIME);
|
|
return data.valid;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
export default checkLicense;
|