From 5058a3fa5f06b70d182b2a00a17884afae7fc807 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 30 Apr 2024 14:02:58 +0200 Subject: [PATCH] add audit log generic types --- src/Umbraco.Web.UI.Client/package.json | 2 +- .../audit-log-data-source.interface.ts | 6 ++++++ .../audit-log-repository.interface.ts | 6 ++++++ .../src/packages/core/audit-log/index.ts | 3 +++ .../src/packages/core/audit-log/types.ts | 19 +++++++++++++++++++ .../document-audit-log.repository.ts | 8 ++++++-- .../document-audit-log.server.data-source.ts | 10 ++++++---- .../documents/documents/audit-log/types.ts | 19 ++----------------- src/Umbraco.Web.UI.Client/tsconfig.json | 2 +- 9 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-data-source.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-repository.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/audit-log/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/audit-log/types.ts diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 6bc051b292..327b456bd5 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -14,7 +14,7 @@ "./localization-api": "./dist-cms/libs/localization-api/index.js", "./observable-api": "./dist-cms/libs/observable-api/index.js", "./action": "./dist-cms/packages/core/action/index.js", - "./audit-log": "./dist-cms/packages/audit-log/index.js", + "./audit-log": "./dist-cms/packages/core/audit-log/index.js", "./auth": "./dist-cms/packages/core/auth/index.js", "./block-grid": "./dist-cms/packages/block/block-grid/index.js", "./block-list": "./dist-cms/packages/block/block-list/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-data-source.interface.ts new file mode 100644 index 0000000000..74dbc1d5e9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-data-source.interface.ts @@ -0,0 +1,6 @@ +import type { UmbAuditLogModel, UmbAuditLogRequestArgs } from './types.js'; +import type { UmbDataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; + +export interface UmbAuditLogDataSource { + getAuditLog(args: UmbAuditLogRequestArgs): Promise>>; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-repository.interface.ts new file mode 100644 index 0000000000..1252a7075c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/audit-log-repository.interface.ts @@ -0,0 +1,6 @@ +import type { UmbAuditLogModel, UmbAuditLogRequestArgs } from './types.js'; +import type { UmbRepositoryBase, UmbRepositoryResponse } from '@umbraco-cms/backoffice/repository'; + +export interface UmbAuditLogRepository extends UmbRepositoryBase { + requestAuditLog(args: UmbAuditLogRequestArgs): Promise>; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/index.ts new file mode 100644 index 0000000000..8bf3be0865 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/index.ts @@ -0,0 +1,3 @@ +export type { UmbAuditLogRepository } from './audit-log-repository.interface.js'; +export type { UmbAuditLogDataSource } from './audit-log-data-source.interface.js'; +export type { UmbAuditLogModel, UmbAuditLogRequestArgs } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/types.ts new file mode 100644 index 0000000000..f155a54fbe --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/audit-log/types.ts @@ -0,0 +1,19 @@ +import type { AuditTypeModel } from '@umbraco-cms/backoffice/external/backend-api'; +import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; +import type { UmbDirectionType } from '@umbraco-cms/backoffice/utils'; + +export interface UmbAuditLogModel { + user: UmbReferenceByUnique | null; + timestamp: string; + logType: AuditTypeModel; + comment?: string | null; + parameters?: string | null; +} + +export interface UmbAuditLogRequestArgs { + unique: string; + orderDirection?: UmbDirectionType; + sinceDate?: string; + skip?: number; + take?: number; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.repository.ts index 6666954243..cdf014c117 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.repository.ts @@ -1,4 +1,5 @@ -import type { UmbAuditLogRequestArgs } from '../types.js'; +import type { UmbAuditLogRepository, UmbAuditLogRequestArgs } from '@umbraco-cms/backoffice/audit-log'; +import type { UmbDocumentAuditLogModel } from '../types.js'; import { UmbDocumentAuditLogServerDataSource } from './document-audit-log.server.data-source.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; @@ -9,7 +10,10 @@ import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; * @class UmbDocumentAuditLogRepository * @extends {UmbRepositoryBase} */ -export class UmbDocumentAuditLogRepository extends UmbRepositoryBase { +export class UmbDocumentAuditLogRepository + extends UmbRepositoryBase + implements UmbAuditLogRepository +{ #dataSource: UmbDocumentAuditLogServerDataSource; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.server.data-source.ts index f35b3587ef..220a5a1355 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/repository/document-audit-log.server.data-source.ts @@ -1,5 +1,7 @@ -import type { UmbAuditLogRequestArgs } from '../types.js'; +import type { UmbAuditLogDataSource, UmbAuditLogRequestArgs } from '@umbraco-cms/backoffice/audit-log'; +import type { UmbDocumentAuditLogModel } from '../types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { DirectionModel } from '@umbraco-cms/backoffice/external/backend-api'; import { DocumentService } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -8,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; * @export * @class UmbAuditLogServerDataSource */ -export class UmbDocumentAuditLogServerDataSource { +export class UmbDocumentAuditLogServerDataSource implements UmbAuditLogDataSource { #host: UmbControllerHost; /** @@ -31,7 +33,7 @@ export class UmbDocumentAuditLogServerDataSource { this.#host, DocumentService.getDocumentByIdAuditLog({ id: args.unique, - orderDirection: args.orderDirection, + orderDirection: args.orderDirection as DirectionModel, // TODO: Fix type cast sinceDate: args.sinceDate, skip: args.skip, take: args.take, @@ -39,7 +41,7 @@ export class UmbDocumentAuditLogServerDataSource { ); if (data) { - const mappedItems = data.items.map((item) => { + const mappedItems: Array = data.items.map((item) => { return { user: item.user ? { unique: item.user.id } : null, timestamp: item.timestamp, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/types.ts index 62f9072b8d..a6f3ed36cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/audit-log/types.ts @@ -1,18 +1,3 @@ -import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; -import type { UmbDirectionType } from '@umbraco-cms/backoffice/utils'; +import type { UmbAuditLogModel } from '@umbraco-cms/backoffice/audit-log'; -export interface UmbAuditLogRequestArgs { - unique: string; - orderDirection?: UmbDirectionType; - sinceDate?: string; - skip?: number; - take?: number; -} - -export interface UmbDocumentAuditLogModel { - user: UmbReferenceByUnique; - timestamp: string; - logType: AuditTypeModel; - comment?: string | null; - parameters?: string | null; -} +export interface UmbDocumentAuditLogModel extends UmbAuditLogModel {} diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index a44a5b7025..1a5c3a0f7d 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -32,7 +32,7 @@ "@umbraco-cms/backoffice/localization-api": ["./src/libs/localization-api/index.ts"], "@umbraco-cms/backoffice/observable-api": ["./src/libs/observable-api/index.ts"], "@umbraco-cms/backoffice/action": ["./src/packages/core/action/index.ts"], - "@umbraco-cms/backoffice/audit-log": ["./src/packages/audit-log/index.ts"], + "@umbraco-cms/backoffice/audit-log": ["./src/packages/core/audit-log/index.ts"], "@umbraco-cms/backoffice/auth": ["./src/packages/core/auth/index.ts"], "@umbraco-cms/backoffice/block-grid": ["./src/packages/block/block-grid/index.ts"], "@umbraco-cms/backoffice/block-list": ["./src/packages/block/block-list/index.ts"],