mirror of
https://github.com/documenso/documenso.git
synced 2025-11-14 08:42:12 +10:00
feat: register user instance
This commit is contained in:
42
packages/lib/server-only/telemetry/register-instance.ts
Normal file
42
packages/lib/server-only/telemetry/register-instance.ts
Normal file
@ -0,0 +1,42 @@
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import { getSiteSettings } from '../site-settings/get-site-settings';
|
||||
import {
|
||||
SITE_SETTINGS_TELEMETRY_ID,
|
||||
ZSiteSettingsTelemetrySchema,
|
||||
} from '../site-settings/schemas/telemetry';
|
||||
import { upsertSiteSetting } from '../site-settings/upsert-site-setting';
|
||||
import { sendInstance } from './send-instance';
|
||||
|
||||
export const registerInstance = async () => {
|
||||
const instanceResponse = await getSiteSettings().then((settings) =>
|
||||
settings.find((setting) => setting.id === SITE_SETTINGS_TELEMETRY_ID),
|
||||
);
|
||||
|
||||
const instance = ZSiteSettingsTelemetrySchema.parse(instanceResponse);
|
||||
|
||||
if (!instance) {
|
||||
const upsert = await upsertSiteSetting({
|
||||
data: {
|
||||
instanceId: nanoid(),
|
||||
},
|
||||
enabled: true,
|
||||
id: SITE_SETTINGS_TELEMETRY_ID,
|
||||
userId: null,
|
||||
});
|
||||
|
||||
const instance = ZSiteSettingsTelemetrySchema.parse(upsert);
|
||||
|
||||
return await sendInstance({
|
||||
uniqueId: instance.data?.instanceId,
|
||||
timestamp: new Date(),
|
||||
version: '1.2.3',
|
||||
});
|
||||
}
|
||||
|
||||
return await sendInstance({
|
||||
uniqueId: instance.data.instanceId,
|
||||
timestamp: new Date(),
|
||||
version: '1.2.3',
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user