update dashboard telemetry

This commit is contained in:
Jacob Overgaard
2022-11-09 13:25:20 +01:00
parent 06ab97a033
commit 5705fcc685
2 changed files with 24 additions and 19 deletions

View File

@@ -2,8 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { css, html, LitElement } from 'lit';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { customElement, state } from 'lit/decorators.js';
import { getConsentLevel, getConsentLevels, postConsentLevel } from '@umbraco-cms/backend-api';
import type { TelemetryModel } from '@umbraco-cms/models';
import { ApiError, ProblemDetails, Telemetry, TelemetryLevel, TelemetryResource } from '@umbraco-cms/backend-api';
export type SettingOption = 'Minimal' | 'Basic' | 'Detailed';
@@ -19,10 +18,10 @@ export class UmbDashboardTelemetryElement extends LitElement {
];
@state()
private _telemetryFormData: TelemetryModel['level'] = 'Basic';
private _telemetryFormData = TelemetryLevel.BASIC;
@state()
private _telemetryLevels: TelemetryModel['level'][] = [];
private _telemetryLevels: Telemetry[] = [];
@state()
private _errorMessage = '';
@@ -38,17 +37,20 @@ export class UmbDashboardTelemetryElement extends LitElement {
private async _setup() {
try {
const consentLevels = await getConsentLevels({});
this._telemetryLevels = consentLevels.data as TelemetryModel['level'][];
const consentLevels = await TelemetryResource.getUmbracoManagementApiV1Telemetry({});
this._telemetryLevels = consentLevels.items ?? [];
} catch (e) {
this._errorMessage;
if (e instanceof ApiError) {
this._errorMessage = e.message;
}
}
try {
const consentSetting = await getConsentLevel({});
this._telemetryFormData = consentSetting.data.telemetryLevel as TelemetryModel['level'];
const consentSetting = await TelemetryResource.getUmbracoManagementApiV1TelemetryLevel();
this._telemetryFormData = consentSetting.telemetryLevel ?? TelemetryLevel.BASIC;
} catch (e) {
if (e instanceof getConsentLevel.Error) {
this._errorMessage = e.data.detail;
if (e instanceof ApiError) {
const error = e.body as ProblemDetails;
this._errorMessage = error.detail;
}
}
}
@@ -56,12 +58,14 @@ export class UmbDashboardTelemetryElement extends LitElement {
private _handleSubmit = async (e: CustomEvent<SubmitEvent>) => {
e.stopPropagation();
try {
await postConsentLevel({ telemetryLevel: this._telemetryFormData });
await TelemetryResource.postUmbracoManagementApiV1TelemetryLevel({
requestBody: { telemetryLevel: this._telemetryFormData },
});
} catch (e) {
if (e instanceof postConsentLevel.Error) {
const error = e.getActualType();
if (error.status === 400) {
this._errorMessage = error.data.detail || 'Unknown error, please try again';
if (e instanceof ApiError) {
const error = e.body as ProblemDetails;
if (e.status === 400) {
this._errorMessage = error.detail || 'Unknown error, please try again';
}
} else {
this._errorMessage = 'Unknown error, please try again';
@@ -75,7 +79,7 @@ export class UmbDashboardTelemetryElement extends LitElement {
private _handleChange(e: InputEvent) {
const target = e.target as HTMLInputElement;
this._telemetryFormData = this._telemetryLevels[parseInt(target.value) - 1];
this._telemetryFormData = this._telemetryLevels[parseInt(target.value) - 1].telemetryLevel ?? TelemetryLevel.BASIC;
}
private get _selectedTelemetryIndex() {
@@ -99,7 +103,7 @@ export class UmbDashboardTelemetryElement extends LitElement {
<li>System information: Webserver, server OS, server framework, server OS language, and database provider.</li>
<li>Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.</li>
</ul>
<i>We might change what we send on the Detailed level in the future. If so, it will be listed above.
By choosing "Detailed" you agree to current and future anonymized information being collected.</i>`;
default:

View File

@@ -2,7 +2,8 @@ import { rest } from 'msw';
import { umbracoPath } from '@umbraco-cms/utils';
import type { ManifestsPackagesInstalledResponse, ManifestsResponse } from '@umbraco-cms/models';
interface ManifestsResponse extends Record<string, any> {}
interface ManifestsPackagesInstalledResponse extends ManifestsResponse {}
export const manifestDevelopmentHandler = rest.get(umbracoPath('/manifests'), (_req, res, ctx) => {
return res(