1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-18 09:13:33 +00:00

PM-5274 Migrate Collection Service State (#7732)

* update collection service to use new state provider framework, remove stateservice from collection service, update collections state provider with migrate file and unit test
This commit is contained in:
Jason Ng
2024-02-14 17:03:03 -05:00
committed by GitHub
parent d8b74b78da
commit 3edf098aaf
23 changed files with 426 additions and 170 deletions

View File

@@ -1,8 +1,11 @@
import { Jsonify } from "type-fest";
import { CollectionId, OrganizationId } from "../../../types/guid";
import { CollectionDetailsResponse } from "../response/collection.response";
export class CollectionData {
id: string;
organizationId: string;
id: CollectionId;
organizationId: OrganizationId;
name: string;
externalId: string;
readOnly: boolean;
@@ -18,4 +21,8 @@ export class CollectionData {
this.manage = response.manage;
this.hidePasswords = response.hidePasswords;
}
static fromJSON(obj: Jsonify<CollectionData>) {
return Object.assign(new CollectionData(new CollectionDetailsResponse({})), obj);
}
}

View File

@@ -1,4 +1,5 @@
import { mockEnc } from "../../../../spec";
import { CollectionId, OrganizationId } from "../../../types/guid";
import { CollectionData } from "../data/collection.data";
import { Collection } from "./collection";
@@ -8,8 +9,8 @@ describe("Collection", () => {
beforeEach(() => {
data = {
id: "id",
organizationId: "orgId",
id: "id" as CollectionId,
organizationId: "orgId" as OrganizationId,
name: "encName",
externalId: "extId",
readOnly: true,

View File

@@ -1,9 +1,10 @@
import { SelectionReadOnlyResponse } from "../../../admin-console/models/response/selection-read-only.response";
import { BaseResponse } from "../../../models/response/base.response";
import { CollectionId, OrganizationId } from "../../../types/guid";
export class CollectionResponse extends BaseResponse {
id: string;
organizationId: string;
id: CollectionId;
organizationId: OrganizationId;
name: string;
externalId: string;

View File

@@ -1,3 +1,5 @@
import { Jsonify } from "type-fest";
import { Organization } from "../../../admin-console/models/domain/organization";
import { View } from "../../../models/view/view";
import { Collection } from "../domain/collection";
@@ -56,4 +58,8 @@ export class CollectionView implements View, ITreeNodeObject {
? org?.canDeleteAnyCollection || (!org?.limitCollectionCreationDeletion && this.manage)
: org?.canDeleteAnyCollection || org?.canDeleteAssignedCollections;
}
static fromJSON(obj: Jsonify<CollectionView>) {
return Object.assign(new CollectionView(new Collection()), obj);
}
}