From ab6085cd88a0cc5b87fa0d46763d5e8768970a5d Mon Sep 17 00:00:00 2001 From: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com> Date: Tue, 25 Jul 2023 15:57:29 -0400 Subject: [PATCH] [AC-1562] Added region custom field to PayPal add credits (#5897) * Added config service func for getting cloud region * Updated to use `buildServerConfig` --- apps/web/src/app/billing/settings/add-credit.component.ts | 6 ++++-- .../abstractions/config/config.service.abstraction.ts | 1 + libs/common/src/platform/services/config/config.service.ts | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/web/src/app/billing/settings/add-credit.component.ts b/apps/web/src/app/billing/settings/add-credit.component.ts index 031d25e9fe5..c59886b4b40 100644 --- a/apps/web/src/app/billing/settings/add-credit.component.ts +++ b/apps/web/src/app/billing/settings/add-credit.component.ts @@ -12,6 +12,7 @@ import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { PaymentMethodType } from "@bitwarden/common/billing/enums"; import { BitPayInvoiceRequest } from "@bitwarden/common/billing/models/request/bit-pay-invoice.request"; +import { ConfigServiceAbstraction } from "@bitwarden/common/platform/abstractions/config/config.service.abstraction"; import { PayPalConfig } from "@bitwarden/common/platform/abstractions/environment.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; @@ -50,7 +51,8 @@ export class AddCreditComponent implements OnInit { private apiService: ApiService, private platformUtilsService: PlatformUtilsService, private organizationService: OrganizationService, - private logService: LogService + private logService: LogService, + private configService: ConfigServiceAbstraction ) { const payPalConfig = process.env.PAYPAL_CONFIG as PayPalConfig; this.ppButtonFormAction = payPalConfig.buttonAction; @@ -77,7 +79,7 @@ export class AddCreditComponent implements OnInit { this.email = this.subject; this.ppButtonCustomField = "user_id:" + this.userId; } - this.region = await this.stateService.getRegion(); + this.region = await this.configService.getCloudRegion(); this.ppButtonCustomField += ",account_credit:1"; this.ppButtonCustomField += `,region:${this.region}`; this.returnUrl = window.location.href; diff --git a/libs/common/src/platform/abstractions/config/config.service.abstraction.ts b/libs/common/src/platform/abstractions/config/config.service.abstraction.ts index a08bb31f961..13e44b9f5eb 100644 --- a/libs/common/src/platform/abstractions/config/config.service.abstraction.ts +++ b/libs/common/src/platform/abstractions/config/config.service.abstraction.ts @@ -10,4 +10,5 @@ export abstract class ConfigServiceAbstraction { getFeatureFlagBool: (key: FeatureFlag, defaultValue?: boolean) => Promise; getFeatureFlagString: (key: FeatureFlag, defaultValue?: string) => Promise; getFeatureFlagNumber: (key: FeatureFlag, defaultValue?: number) => Promise; + getCloudRegion: (defaultValue?: string) => Promise; } diff --git a/libs/common/src/platform/services/config/config.service.ts b/libs/common/src/platform/services/config/config.service.ts index e03107d3b43..54ece293a01 100644 --- a/libs/common/src/platform/services/config/config.service.ts +++ b/libs/common/src/platform/services/config/config.service.ts @@ -63,6 +63,11 @@ export class ConfigService implements ConfigServiceAbstraction { return await this.getFeatureFlag(key, defaultValue); } + async getCloudRegion(defaultValue = "US"): Promise { + const serverConfig = await this.buildServerConfig(); + return serverConfig.environment?.cloudRegion ?? defaultValue; + } + private async getFeatureFlag(key: FeatureFlag, defaultValue: T): Promise { const serverConfig = await this.buildServerConfig(); if (