mirror of
https://github.com/bitwarden/jslib
synced 2025-12-06 00:03:29 +00:00
Make Organization into a reactive data service
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import { Observable } from "rxjs";
|
||||
|
||||
import { OrganizationData } from "../models/data/organizationData";
|
||||
import { Organization } from "../models/domain/organization";
|
||||
|
||||
export abstract class OrganizationService {
|
||||
organizations$: Observable<Organization[]>;
|
||||
|
||||
get: (id: string) => Promise<Organization>;
|
||||
getByIdentifier: (identifier: string) => Promise<Organization>;
|
||||
getAll: (userId?: string) => Promise<Organization[]>;
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
import { BehaviorSubject, Observable } from "rxjs";
|
||||
|
||||
import { OrganizationService as OrganizationServiceAbstraction } from "../abstractions/organization.service";
|
||||
import { StateService } from "../abstractions/state.service";
|
||||
import { OrganizationData } from "../models/data/organizationData";
|
||||
import { Organization } from "../models/domain/organization";
|
||||
|
||||
export class OrganizationService implements OrganizationServiceAbstraction {
|
||||
private _organizations$ = new BehaviorSubject<Organization[]>([]);
|
||||
organizations$: Observable<Organization[]> = this._organizations$.asObservable();
|
||||
|
||||
constructor(private stateService: StateService) {}
|
||||
|
||||
async get(id: string): Promise<Organization> {
|
||||
@@ -38,7 +43,8 @@ export class OrganizationService implements OrganizationServiceAbstraction {
|
||||
}
|
||||
|
||||
async save(organizations: { [id: string]: OrganizationData }) {
|
||||
return await this.stateService.setOrganizations(organizations);
|
||||
await this.stateService.setOrganizations(organizations);
|
||||
await this._organizations$.next(await this.getAll());
|
||||
}
|
||||
|
||||
async canManageSponsorships(): Promise<boolean> {
|
||||
|
||||
Reference in New Issue
Block a user