1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-02 13:23:29 +01:00

[AC-1418] Adjust organization-subscription-update.request.ts to support both PM and SM

This commit is contained in:
Shane Melton 2023-06-21 15:11:08 -07:00
parent 55eaff06d6
commit e6816aae8e
No known key found for this signature in database
2 changed files with 71 additions and 2 deletions

View File

@ -39,7 +39,10 @@ export class AdjustSubscription {
async submit() {
try {
const seatAdjustment = this.newSeatCount - this.currentSeatCount;
const request = new OrganizationSubscriptionUpdateRequest(seatAdjustment, this.newMaxSeats);
const request = OrganizationSubscriptionUpdateRequest.forPasswordManager(
seatAdjustment,
this.newMaxSeats
);
this.formPromise = this.organizationApiService.updateSubscription(
this.organizationId,
request

View File

@ -1,3 +1,69 @@
import { BitwardenProductType } from "../../enums/bitwarden-product-type.enum";
export class OrganizationSubscriptionUpdateRequest {
constructor(public seatAdjustment: number, public maxAutoscaleSeats?: number) {}
productType: BitwardenProductType;
/**
* The number of seats to add or remove from the subscription.
* Applies to both PM and SM request types.
*/
seatAdjustment: number;
/**
* The maximum number of seats that can be auto-scaled for the subscription.
* Applies to both PM and SM request types.
*/
maxAutoscaleSeats?: number;
/**
* The number of additional service accounts to add or remove from the subscription.
* Applies only to the SM request type.
*/
serviceAccountAdjustment?: number;
/**
* The maximum number of additional service accounts that can be auto-scaled for the subscription.
* Applies only to the SM request type.
*/
maxAutoscaleServiceAccounts?: number;
constructor(productType: BitwardenProductType) {
this.productType = productType;
}
/**
* Build a subscription update request for the Password Manager product type.
* @param seatAdjustment - The number of seats to add or remove from the subscription.
* @param maxAutoscaleSeats - The maximum number of seats that can be auto-scaled for the subscription.
*/
static forPasswordManager(
seatAdjustment: number,
maxAutoscaleSeats?: number
): OrganizationSubscriptionUpdateRequest {
const request = new OrganizationSubscriptionUpdateRequest(BitwardenProductType.PasswordManager);
request.seatAdjustment = seatAdjustment;
request.maxAutoscaleSeats = maxAutoscaleSeats;
return request;
}
/**
* Build a subscription update request for the Secrets Manager product type.
* @param seatAdjustment - The number of seats to add or remove from the subscription.
* @param serviceAccountAdjustment - The number of additional service accounts to add or remove from the subscription.
* @param maxAutoscaleSeats - The maximum number of seats that can be auto-scaled for the subscription.
* @param maxAutoscaleServiceAccounts - The maximum number of additional service accounts that can be auto-scaled for the subscription.
*/
static forSecretsManager(
seatAdjustment: number,
serviceAccountAdjustment: number,
maxAutoscaleSeats?: number,
maxAutoscaleServiceAccounts?: number
): OrganizationSubscriptionUpdateRequest {
const request = new OrganizationSubscriptionUpdateRequest(BitwardenProductType.SecretsManager);
request.seatAdjustment = seatAdjustment;
request.serviceAccountAdjustment = serviceAccountAdjustment;
request.maxAutoscaleSeats = maxAutoscaleSeats;
request.maxAutoscaleServiceAccounts = maxAutoscaleServiceAccounts;
return request;
}
}