1
0
mirror of https://github.com/bitwarden/jslib synced 2026-01-06 10:33:15 +00:00

Get collections from server if admin

This commit is contained in:
Thomas Rittson
2022-05-17 16:29:22 +10:00
parent e61800d137
commit daaf2870ac
4 changed files with 39 additions and 9 deletions

View File

@@ -10,6 +10,7 @@ export abstract class CollectionService {
get: (id: string) => Promise<Collection>;
getAll: () => Promise<Collection[]>;
getAllDecrypted: () => Promise<CollectionView[]>;
getOrgCollectionsFromServer: (organizationId: string) => Promise<CollectionView[]>;
getAllNested: (collections?: CollectionView[]) => Promise<TreeNode<CollectionView>[]>;
getNested: (id: string) => Promise<TreeNode<CollectionView>>;
upsert: (collection: CollectionData | CollectionData[]) => Promise<any>;

View File

@@ -1,3 +1,6 @@
import { ApiService } from "jslib-common/abstractions/api.service";
import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse";
import { CollectionService as CollectionServiceAbstraction } from "../abstractions/collection.service";
import { CryptoService } from "../abstractions/crypto.service";
import { I18nService } from "../abstractions/i18n.service";
@@ -15,7 +18,8 @@ export class CollectionService implements CollectionServiceAbstraction {
constructor(
private cryptoService: CryptoService,
private i18nService: I18nService,
private stateService: StateService
private stateService: StateService,
private apiService: ApiService
) {}
async clearCache(userId?: string): Promise<void> {
@@ -154,4 +158,18 @@ export class CollectionService implements CollectionServiceAbstraction {
await this.replace(collections);
}
async getOrgCollectionsFromServer(organizationId: string) {
let result: CollectionView[] = [];
const collectionResponse = await this.apiService.getCollections(organizationId);
if (collectionResponse?.data != null && collectionResponse.data.length) {
const collectionDomains = collectionResponse.data.map(
(r) => new Collection(new CollectionData(r as CollectionDetailsResponse))
);
result = await this.decryptMany(collectionDomains);
}
return result;
}
}