From 5818ccc70d53b1ab36df648ab9f562c010f25318 Mon Sep 17 00:00:00 2001 From: addison Date: Thu, 2 Jun 2022 12:42:20 -0400 Subject: [PATCH] [refactor] Establish pattern for interfaces in module scoped services --- .../vault-filter/vault-filter.component.ts | 4 ++-- .../vault-filter.service.interface.ts | 15 +++++++++++++++ .../modules/vault-filter/vault-filter.service.ts | 3 ++- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 angular/src/modules/vault-filter/vault-filter.service.interface.ts diff --git a/angular/src/modules/vault-filter/vault-filter.component.ts b/angular/src/modules/vault-filter/vault-filter.component.ts index e717f5c9..8d3cae80 100644 --- a/angular/src/modules/vault-filter/vault-filter.component.ts +++ b/angular/src/modules/vault-filter/vault-filter.component.ts @@ -7,7 +7,7 @@ import { FolderView } from "jslib-common/models/view/folderView"; import { DynamicTreeNode } from "./models/dynamic-tree-node.model"; import { VaultFilter } from "./models/vault-filter.model"; -import { VaultFilterService } from "./vault-filter.service"; +import { VaultFilterServiceInterface } from "./vault-filter.service.interface"; @Directive() export class VaultFilterComponent implements OnInit { @@ -30,7 +30,7 @@ export class VaultFilterComponent implements OnInit { collections: DynamicTreeNode; folders: DynamicTreeNode; - constructor(protected vaultFilterService: VaultFilterService) {} + constructor(protected vaultFilterService: VaultFilterServiceInterface) {} get displayCollections() { return this.collections?.fullList != null && this.collections.fullList.length > 0; diff --git a/angular/src/modules/vault-filter/vault-filter.service.interface.ts b/angular/src/modules/vault-filter/vault-filter.service.interface.ts new file mode 100644 index 00000000..8e2a155c --- /dev/null +++ b/angular/src/modules/vault-filter/vault-filter.service.interface.ts @@ -0,0 +1,15 @@ +import { Organization } from "jslib-common/models/domain/organization"; +import { CollectionView } from "jslib-common/models/view/collectionView"; +import { FolderView } from "jslib-common/models/view/folderView"; + +import { DynamicTreeNode } from "./models/dynamic-tree-node.model"; + +export abstract class VaultFilterServiceInterface { + storeCollapsedFilterNodes: (collapsedFilterNodes: Set) => Promise; + buildCollapsedFilterNodes: () => Promise>; + buildOrganizations: () => Promise; + buildFolders: (organizationId?: string) => Promise>; + buildCollections: (organizationId?: string) => Promise>; + checkForSingleOrganizationPolicy: () => Promise; + checkForPersonalOwnershipPolicy: () => Promise; +} diff --git a/angular/src/modules/vault-filter/vault-filter.service.ts b/angular/src/modules/vault-filter/vault-filter.service.ts index b05cce17..b732ca8a 100644 --- a/angular/src/modules/vault-filter/vault-filter.service.ts +++ b/angular/src/modules/vault-filter/vault-filter.service.ts @@ -12,9 +12,10 @@ import { CollectionView } from "jslib-common/models/view/collectionView"; import { FolderView } from "jslib-common/models/view/folderView"; import { DynamicTreeNode } from "./models/dynamic-tree-node.model"; +import { VaultFilterServiceInterface } from "./vault-filter.service.interface"; @Injectable() -export class VaultFilterService { +export class VaultFilterService implements VaultFilterServiceInterface { constructor( protected stateService: StateService, protected organizationService: OrganizationService,