1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-25 09:03:28 +00:00

[EC-86] Add GroupApiService

Add a new GroupApiService to replace Group Api calls in the ApiService.
This commit is contained in:
Shane Melton
2022-10-11 11:55:38 -07:00
parent fb8214e6a3
commit 3e3583269e
11 changed files with 112 additions and 79 deletions

View File

@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CryptoService } from "@bitwarden/common/abstractions/crypto.service";
import { GroupApiServiceAbstraction, GroupResponse } from "@bitwarden/common/abstractions/group";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/abstractions/log.service";
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
@@ -11,7 +12,6 @@ import { EncString } from "@bitwarden/common/models/domain/encString";
import { SymmetricCryptoKey } from "@bitwarden/common/models/domain/symmetricCryptoKey";
import { CollectionRequest } from "@bitwarden/common/models/request/collectionRequest";
import { SelectionReadOnlyRequest } from "@bitwarden/common/models/request/selectionReadOnlyRequest";
import { GroupResponse } from "@bitwarden/common/models/response/groupResponse";
@Component({
selector: "app-collection-add-edit",
@@ -39,6 +39,7 @@ export class CollectionAddEditComponent implements OnInit {
constructor(
private apiService: ApiService,
private groupApiService: GroupApiServiceAbstraction,
private i18nService: I18nService,
private platformUtilsService: PlatformUtilsService,
private cryptoService: CryptoService,
@@ -51,7 +52,7 @@ export class CollectionAddEditComponent implements OnInit {
this.accessGroups = organization.useGroups;
this.editMode = this.loading = this.collectionId != null;
if (this.accessGroups) {
const groupsResponse = await this.apiService.getGroups(this.organizationId);
const groupsResponse = await this.groupApiService.getAll(this.organizationId);
this.groups = groupsResponse.data
.map((r) => r)
.sort(Utils.getSortFunction(this.i18nService, "name"));

View File

@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
import { GroupApiServiceAbstraction } from "@bitwarden/common/abstractions/group";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
@@ -34,6 +35,7 @@ export class GroupAddEditComponent implements OnInit {
constructor(
private apiService: ApiService,
private groupApiService: GroupApiServiceAbstraction,
private i18nService: I18nService,
private collectionService: CollectionService,
private platformUtilsService: PlatformUtilsService,
@@ -48,7 +50,7 @@ export class GroupAddEditComponent implements OnInit {
this.editMode = true;
this.title = this.i18nService.t("editGroup");
try {
const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId);
const group = await this.groupApiService.get(this.organizationId, this.groupId);
this.access = group.accessAll ? "all" : "selected";
this.name = group.name;
this.externalId = group.externalId;
@@ -137,7 +139,7 @@ export class GroupAddEditComponent implements OnInit {
}
try {
this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId);
this.deletePromise = this.groupApiService.delete(this.organizationId, this.groupId);
await this.deletePromise;
this.platformUtilsService.showToast(
"success",

View File

@@ -17,6 +17,10 @@ import { SearchPipe } from "@bitwarden/angular/pipes/search.pipe";
import { ModalService } from "@bitwarden/angular/services/modal.service";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
import {
GroupApiServiceAbstraction,
GroupDetailsResponse,
} from "@bitwarden/common/abstractions/group";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
@@ -24,12 +28,10 @@ import { SearchService } from "@bitwarden/common/abstractions/search.service";
import { Utils } from "@bitwarden/common/misc/utils";
import { CollectionData } from "@bitwarden/common/models/data/collectionData";
import { Collection } from "@bitwarden/common/models/domain/collection";
import { OrganizationGroupBulkRequest } from "@bitwarden/common/models/request/OrganizationGroupBulkRequest";
import {
CollectionDetailsResponse,
CollectionResponse,
} from "@bitwarden/common/models/response/collectionResponse";
import { GroupDetailsResponse } from "@bitwarden/common/models/response/groupResponse";
import { ListResponse } from "@bitwarden/common/models/response/listResponse";
import { CollectionView } from "@bitwarden/common/models/view/collectionView";
@@ -106,6 +108,7 @@ export class GroupsComponent implements OnInit, OnDestroy {
constructor(
private apiService: ApiService,
private groupApiService: GroupApiServiceAbstraction,
private route: ActivatedRoute,
private i18nService: I18nService,
private modalService: ModalService,
@@ -128,7 +131,7 @@ export class GroupsComponent implements OnInit, OnDestroy {
),
// groups
this.refreshGroups$.pipe(
switchMap(() => this.apiService.getGroups(this.organizationId)),
switchMap(() => this.groupApiService.getAll(this.organizationId)),
map((response) =>
response.data != null && response.data.length > 0 ? response.data : []
)
@@ -225,7 +228,7 @@ export class GroupsComponent implements OnInit, OnDestroy {
}
try {
await this.apiService.deleteGroup(this.organizationId, groupRow.details.id);
await this.groupApiService.delete(this.organizationId, groupRow.details.id);
this.platformUtilsService.showToast(
"success",
null,
@@ -257,9 +260,9 @@ export class GroupsComponent implements OnInit, OnDestroy {
}
try {
const result = await this.apiService.deleteManyGroups(
const result = await this.groupApiService.deleteMany(
this.organizationId,
new OrganizationGroupBulkRequest(groupsToDelete.map((g) => g.details.id))
groupsToDelete.map((g) => g.details.id)
);
this.platformUtilsService.showToast(
"success",

View File

@@ -1,12 +1,12 @@
import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { GroupApiServiceAbstraction, GroupResponse } from "@bitwarden/common/abstractions/group";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
import { Utils } from "@bitwarden/common/misc/utils";
import { OrganizationUserUpdateGroupsRequest } from "@bitwarden/common/models/request/organizationUserUpdateGroupsRequest";
import { GroupResponse } from "@bitwarden/common/models/response/groupResponse";
@Component({
selector: "app-user-groups",
@@ -24,13 +24,14 @@ export class UserGroupsComponent implements OnInit {
constructor(
private apiService: ApiService,
private groupApiService: GroupApiServiceAbstraction,
private i18nService: I18nService,
private platformUtilsService: PlatformUtilsService,
private logService: LogService
) {}
async ngOnInit() {
const groupsResponse = await this.apiService.getGroups(this.organizationId);
const groupsResponse = await this.groupApiService.getAll(this.organizationId);
const groups = groupsResponse.data.map((r) => r);
groups.sort(Utils.getSortFunction(this.i18nService, "name"));
this.groups = groups;