1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 08:13:42 +00:00

[PM-26356] Remove client-side pre-consolidated billing code (#16707)

* Remove legacy provider files

* Removing index files to make file re-org easier

* Move manage-clients.component and associated API invocation to AC

* Move add-existing-organization-dialog.component to AC

* Move manage-client-name-dialog.component and associated API call to AC

* Move misc clients files to AC

* Move create-client-dialog.component and associated API call to AC

* Move manage-client-subscription-dialog.component to AC

* Update provider-layout.component

* Cleanup

* Fix linting
This commit is contained in:
Alex Morask
2025-10-21 14:15:29 -05:00
committed by GitHub
parent 8beb1c6ab0
commit 5b2682ff21
41 changed files with 169 additions and 686 deletions

View File

@@ -1,8 +1,12 @@
import { AddableOrganizationResponse } from "@bitwarden/common/admin-console/models/response/addable-organization.response";
import { ProviderOrganizationOrganizationDetailsResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-organization.response";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { CreateProviderOrganizationRequest } from "../../models/request/create-provider-organization.request";
import { ProviderSetupRequest } from "../../models/request/provider/provider-setup.request";
import { ProviderUpdateRequest } from "../../models/request/provider/provider-update.request";
import { ProviderVerifyRecoverDeleteRequest } from "../../models/request/provider/provider-verify-recover-delete.request";
import { UpdateProviderOrganizationRequest } from "../../models/request/update-provider-organization.request";
import { ProviderResponse } from "../../models/response/provider/provider.response";
export abstract class ProviderApiServiceAbstraction {
@@ -14,6 +18,9 @@ export abstract class ProviderApiServiceAbstraction {
request: ProviderVerifyRecoverDeleteRequest,
): Promise<any>;
abstract deleteProvider(id: string): Promise<void>;
abstract getProviderOrganizations(
providerId: string,
): Promise<ListResponse<ProviderOrganizationOrganizationDetailsResponse>>;
abstract getProviderAddableOrganizations(
providerId: string,
): Promise<AddableOrganizationResponse[]>;
@@ -24,4 +31,15 @@ export abstract class ProviderApiServiceAbstraction {
organizationId: string;
},
): Promise<void>;
abstract updateProviderOrganization(
providerId: string,
organizationId: string,
request: UpdateProviderOrganizationRequest,
): Promise<any>;
abstract createProviderOrganization(
providerId: string,
request: CreateProviderOrganizationRequest,
): Promise<void>;
}

View File

@@ -0,0 +1,15 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { PlanType } from "../../../billing/enums";
import { OrganizationKeysRequest } from "./organization-keys.request";
export class CreateProviderOrganizationRequest {
name: string;
ownerEmail: string;
planType: PlanType;
seats: number;
key: string;
keyPair: OrganizationKeysRequest;
collectionName: string;
}

View File

@@ -0,0 +1,6 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
export class UpdateProviderOrganizationRequest {
assignedSeats: number;
name: string;
}

View File

@@ -1,10 +1,14 @@
import { AddableOrganizationResponse } from "@bitwarden/common/admin-console/models/response/addable-organization.response";
import { ProviderOrganizationOrganizationDetailsResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-organization.response";
import { ListResponse } from "@bitwarden/common/models/response/list.response";
import { ApiService } from "../../../abstractions/api.service";
import { ProviderApiServiceAbstraction } from "../../abstractions/provider/provider-api.service.abstraction";
import { CreateProviderOrganizationRequest } from "../../models/request/create-provider-organization.request";
import { ProviderSetupRequest } from "../../models/request/provider/provider-setup.request";
import { ProviderUpdateRequest } from "../../models/request/provider/provider-update.request";
import { ProviderVerifyRecoverDeleteRequest } from "../../models/request/provider/provider-verify-recover-delete.request";
import { UpdateProviderOrganizationRequest } from "../../models/request/update-provider-organization.request";
import { ProviderResponse } from "../../models/response/provider/provider.response";
export class ProviderApiService implements ProviderApiServiceAbstraction {
@@ -47,6 +51,19 @@ export class ProviderApiService implements ProviderApiServiceAbstraction {
await this.apiService.send("DELETE", "/providers/" + id, null, true, false);
}
async getProviderOrganizations(
providerId: string,
): Promise<ListResponse<ProviderOrganizationOrganizationDetailsResponse>> {
const response = await this.apiService.send(
"GET",
"/providers/" + providerId + "/organizations",
null,
true,
true,
);
return new ListResponse(response, ProviderOrganizationOrganizationDetailsResponse);
}
async getProviderAddableOrganizations(
providerId: string,
): Promise<AddableOrganizationResponse[]> {
@@ -76,4 +93,31 @@ export class ProviderApiService implements ProviderApiServiceAbstraction {
false,
);
}
async updateProviderOrganization(
providerId: string,
organizationId: string,
request: UpdateProviderOrganizationRequest,
): Promise<any> {
return await this.apiService.send(
"PUT",
"/providers/" + providerId + "/clients/" + organizationId,
request,
true,
false,
);
}
createProviderOrganization(
providerId: string,
request: CreateProviderOrganizationRequest,
): Promise<void> {
return this.apiService.send(
"POST",
"/providers/" + providerId + "/clients",
request,
true,
false,
);
}
}