From c428a61a495e514adc1857c063ee25119e1f43e3 Mon Sep 17 00:00:00 2001 From: Reino Muhl <10620585+StaberindeZA@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:53:26 -0400 Subject: [PATCH] feat(cms): cleanup contentful cms band aids Because: - Some temporary band aids were added to support out of date Contentful data that could no longer be changed, due to the Contentful instance being changed to read-only. This commit: - Removes temporary band aids now that support for Strapi has been added Closes #FXA-9797 --- apps/payments/next/.env.development | 3 -- apps/payments/next/.env.production | 3 -- .../src/lib/capability.manager.spec.ts | 2 - .../cart/src/lib/cart.service.spec.ts | 2 - .../cart/src/lib/checkout.service.spec.ts | 2 - .../src/lib/eligibility.service.spec.ts | 2 - .../src/lib/stripe-mapper.service.spec.ts | 2 - libs/payments/ui/src/lib/nestapp/config.ts | 7 +--- libs/shared/cms/src/index.ts | 1 - libs/shared/cms/src/lib/cms.config.ts | 21 ---------- .../lib/product-configuration.manager.spec.ts | 4 -- .../src/lib/product-configuration.manager.ts | 12 +----- packages/fxa-graphql-api/src/config.ts | 38 ------------------- 13 files changed, 2 insertions(+), 97 deletions(-) delete mode 100644 libs/shared/cms/src/lib/cms.config.ts diff --git a/apps/payments/next/.env.development b/apps/payments/next/.env.development index a0b77f3bbd1..bdac7270ca3 100644 --- a/apps/payments/next/.env.development +++ b/apps/payments/next/.env.development @@ -59,9 +59,6 @@ STRAPI_CLIENT_CONFIG__MEM_CACHE_T_T_L= STRAPI_CLIENT_CONFIG__FIRESTORE_CACHE_COLLECTION_NAME=strapiClientQueryCacheCollection STRAPI_CLIENT_CONFIG__FIRESTORE_CACHE_T_T_L= -# CMS Config -CMS_CONFIG__SUPPORTED_PRICE_IDS=plan_GqM9N6qyhvxaVk,price_1KbomlBVqmGyQTMaa0Tq7UaW,price_1Ivq4gBVqmGyQTMaplHcFEGO - # Firestore Config FIRESTORE_CONFIG__CREDENTIALS__CLIENT_EMAIL= FIRESTORE_CONFIG__CREDENTIALS__PRIVATE_KEY= diff --git a/apps/payments/next/.env.production b/apps/payments/next/.env.production index becbf58ba92..36bd585ec0b 100644 --- a/apps/payments/next/.env.production +++ b/apps/payments/next/.env.production @@ -55,9 +55,6 @@ STRAPI_CLIENT_CONFIG__MEM_CACHE_T_T_L= STRAPI_CLIENT_CONFIG__FIRESTORE_CACHE_COLLECTION_NAME=strapiClientQueryCacheCollection STRAPI_CLIENT_CONFIG__FIRESTORE_CACHE_T_T_L= -# CMS Config -CMS_CONFIG__SUPPORTED_PRICE_IDS= - # Firestore Config FIRESTORE_CONFIG__CREDENTIALS__CLIENT_EMAIL= FIRESTORE_CONFIG__CREDENTIALS__PRIVATE_KEY= diff --git a/libs/payments/capability/src/lib/capability.manager.spec.ts b/libs/payments/capability/src/lib/capability.manager.spec.ts index 43c9d6d338f..c730abd8987 100644 --- a/libs/payments/capability/src/lib/capability.manager.spec.ts +++ b/libs/payments/capability/src/lib/capability.manager.spec.ts @@ -19,7 +19,6 @@ import { ServicesWithCapabilitiesQueryFactory, ServicesWithCapabilitiesResult, StrapiClient, - MockCMSConfigProvider, MockStrapiClientConfigProvider, StrapiEntityFactory, } from '@fxa/shared/cms'; @@ -35,7 +34,6 @@ describe('CapabilityManager', () => { const module = await Test.createTestingModule({ providers: [ CapabilityManager, - MockCMSConfigProvider, MockStrapiClientConfigProvider, MockFirestoreProvider, MockStatsDProvider, diff --git a/libs/payments/cart/src/lib/cart.service.spec.ts b/libs/payments/cart/src/lib/cart.service.spec.ts index 06e39fc34d0..e24bee9d25d 100644 --- a/libs/payments/cart/src/lib/cart.service.spec.ts +++ b/libs/payments/cart/src/lib/cart.service.spec.ts @@ -36,7 +36,6 @@ import { TaxAddressFactory, } from '@fxa/payments/stripe'; import { - MockCMSConfigProvider, MockStrapiClientConfigProvider, ProductConfigurationManager, StrapiClient, @@ -84,7 +83,6 @@ describe('CartService', () => { CartManager, CartService, CheckoutService, - MockCMSConfigProvider, ConfigService, MockStrapiClientConfigProvider, CustomerManager, diff --git a/libs/payments/cart/src/lib/checkout.service.spec.ts b/libs/payments/cart/src/lib/checkout.service.spec.ts index 2e2e2de5451..b1ae7a5e8b9 100644 --- a/libs/payments/cart/src/lib/checkout.service.spec.ts +++ b/libs/payments/cart/src/lib/checkout.service.spec.ts @@ -48,7 +48,6 @@ import { } from '@fxa/payments/stripe'; import { AccountManager } from '@fxa/shared/account/account'; import { - MockCMSConfigProvider, MockStrapiClientConfigProvider, ProductConfigurationManager, StrapiClient, @@ -88,7 +87,6 @@ describe('CheckoutService', () => { AccountManager, CartManager, CheckoutService, - MockCMSConfigProvider, MockStrapiClientConfigProvider, CustomerManager, EligibilityManager, diff --git a/libs/payments/eligibility/src/lib/eligibility.service.spec.ts b/libs/payments/eligibility/src/lib/eligibility.service.spec.ts index eaa81140822..da07d1763f1 100644 --- a/libs/payments/eligibility/src/lib/eligibility.service.spec.ts +++ b/libs/payments/eligibility/src/lib/eligibility.service.spec.ts @@ -15,7 +15,6 @@ import { import { EligibilityContentByOfferingResultUtil, EligibilityContentOfferingResultFactory, - MockCMSConfigProvider, MockStrapiClientConfigProvider, ProductConfigurationManager, StrapiClient, @@ -49,7 +48,6 @@ describe('EligibilityService', () => { const module: TestingModule = await Test.createTestingModule({ providers: [ - MockCMSConfigProvider, MockStrapiClientConfigProvider, EligibilityManager, EligibilityService, diff --git a/libs/payments/legacy/src/lib/stripe-mapper.service.spec.ts b/libs/payments/legacy/src/lib/stripe-mapper.service.spec.ts index 47cf37c8d6c..e6fe91c62b2 100644 --- a/libs/payments/legacy/src/lib/stripe-mapper.service.spec.ts +++ b/libs/payments/legacy/src/lib/stripe-mapper.service.spec.ts @@ -13,7 +13,6 @@ import { StripeProductFactory, } from '@fxa/payments/stripe'; import { - MockCMSConfigProvider, ProductConfigurationManager, PurchaseWithDetailsOfferingContentTransformedFactory, PurchaseWithDetailsOfferingContentUtil, @@ -40,7 +39,6 @@ describe('StripeMapperService', () => { const module = await Test.createTestingModule({ providers: [ MockStrapiClientConfigProvider, - MockCMSConfigProvider, MockFirestoreProvider, MockStatsDProvider, PriceManager, diff --git a/libs/payments/ui/src/lib/nestapp/config.ts b/libs/payments/ui/src/lib/nestapp/config.ts index ac409ad1fd6..4859b72d784 100644 --- a/libs/payments/ui/src/lib/nestapp/config.ts +++ b/libs/payments/ui/src/lib/nestapp/config.ts @@ -9,7 +9,7 @@ import { MySQLConfig } from '@fxa/shared/db/mysql/core'; import { GeoDBConfig, GeoDBManagerConfig } from '@fxa/shared/geodb'; import { PaypalClientConfig } from 'libs/payments/paypal/src/lib/paypal.client.config'; import { StripeConfig } from '@fxa/payments/stripe'; -import { CMSConfig, StrapiClientConfig } from '@fxa/shared/cms'; +import { StrapiClientConfig } from '@fxa/shared/cms'; import { FirestoreConfig } from 'libs/shared/db/firestore/src/lib/firestore.config'; import { StatsDConfig } from 'libs/shared/metrics/statsd/src/lib/statsd.config'; @@ -43,11 +43,6 @@ export class RootConfig { @IsDefined() public readonly strapiClientConfig!: Partial; - @Type(() => CMSConfig) - @ValidateNested() - @IsDefined() - public readonly cmsConfig!: Partial; - @Type(() => FirestoreConfig) @ValidateNested() @IsDefined() diff --git a/libs/shared/cms/src/index.ts b/libs/shared/cms/src/index.ts index 99d62ac8196..343293944a9 100644 --- a/libs/shared/cms/src/index.ts +++ b/libs/shared/cms/src/index.ts @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -export * from './lib/cms.config'; export * from './lib/cms.error'; export * from './lib/constants'; export * from './lib/factories'; diff --git a/libs/shared/cms/src/lib/cms.config.ts b/libs/shared/cms/src/lib/cms.config.ts deleted file mode 100644 index 88bc6a784e9..00000000000 --- a/libs/shared/cms/src/lib/cms.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -import { Provider } from '@nestjs/common'; -import { IsString } from 'class-validator'; - -export class CMSConfig { - @IsString() - public readonly supportedPriceIds!: string; -} - -export const MockCMSConfig = { - supportedPriceIds: - 'plan_GqM9N6qyhvxaVk,price_1KbomlBVqmGyQTMaa0Tq7UaW,price_1Ivq4gBVqmGyQTMaplHcFEGO', -} satisfies CMSConfig; - -export const MockCMSConfigProvider = { - provide: CMSConfig, - useValue: MockCMSConfig, -} satisfies Provider; diff --git a/libs/shared/cms/src/lib/product-configuration.manager.spec.ts b/libs/shared/cms/src/lib/product-configuration.manager.spec.ts index b14c273f58f..9f6e5fede95 100644 --- a/libs/shared/cms/src/lib/product-configuration.manager.spec.ts +++ b/libs/shared/cms/src/lib/product-configuration.manager.spec.ts @@ -20,13 +20,11 @@ import { CapabilityPurchaseResultFactory, CapabilityServiceByPlanIdsQueryFactory, CapabilityServiceByPlanIdsResultUtil, - CMSConfig, EligibilityContentByOfferingResultUtil, EligibilityContentByPlanIdsQueryFactory, EligibilityContentByPlanIdsResultUtil, EligibilityPurchaseResult, EligibilityPurchaseResultFactory, - MockCMSConfigProvider, ProductConfigError, ServicesWithCapabilitiesQueryFactory, ServicesWithCapabilitiesResultUtil, @@ -75,9 +73,7 @@ describe('productConfigurationManager', () => { const module = await Test.createTestingModule({ providers: [ { provide: StatsDService, useValue: mockStatsd }, - CMSConfig, MockStrapiClientConfigProvider, - MockCMSConfigProvider, MockFirestoreProvider, PriceManager, ProductConfigurationManager, diff --git a/libs/shared/cms/src/lib/product-configuration.manager.ts b/libs/shared/cms/src/lib/product-configuration.manager.ts index 2f8ee025cd2..5320282a637 100644 --- a/libs/shared/cms/src/lib/product-configuration.manager.ts +++ b/libs/shared/cms/src/lib/product-configuration.manager.ts @@ -16,7 +16,6 @@ import { EligibilityContentByOfferingQuery, PageContentForOfferingQuery, } from '../__generated__/graphql'; -import { CMSConfig } from './cms.config'; import { ProductConfigError } from './cms.error'; import { DEFAULT_LOCALE } from './constants'; import { @@ -50,7 +49,6 @@ import { DeepNonNullable } from './types'; export class ProductConfigurationManager { constructor( private strapiClient: StrapiClient, - private cmsConfig: CMSConfig, private priceManager: PriceManager, @Inject(StatsDService) private statsd: StatsD ) { @@ -229,16 +227,8 @@ export class ProductConfigurationManager { interval: SubplatInterval ) { const priceIds = await this.getOfferingPlanIds(offeringConfigId); - // Temporary supported list of plans - // CMS purchase.stripePlanChoices is currently not configured correctly - // Unfortunately, currently the CMS is read-only and can't be updated - // As a temporary work around provide a list of supported plans - const supportedListOfPriceIds = this.cmsConfig.supportedPriceIds.split(','); - const filteredPriceIds = priceIds.filter((stripePlanChoice) => - supportedListOfPriceIds.includes(stripePlanChoice) - ); const price = await this.priceManager.retrieveByInterval( - filteredPriceIds, + priceIds, interval ); if (!price) throw new ProductConfigError('Plan not found'); diff --git a/packages/fxa-graphql-api/src/config.ts b/packages/fxa-graphql-api/src/config.ts index fa29e294f97..3e1ba9ec708 100644 --- a/packages/fxa-graphql-api/src/config.ts +++ b/packages/fxa-graphql-api/src/config.ts @@ -42,44 +42,6 @@ const conf = convict({ default: 'http://localhost:9000/v1', }, }, - contentful: { - cdnUrl: { - doc: 'Base URL for Content Delivery API (https://www.contentful.com/developers/docs/references/content-delivery-api//)', - format: String, - env: 'CONTENTFUL_CDN_API_URL', - default: '', - }, - graphqlUrl: { - doc: 'Base URL for GraphQL Content API (https://www.contentful.com/developers/docs/references/graphql/)', - format: String, - env: 'CONTENTFUL_GRAPHQL_API_URL', - default: '', - }, - apiKey: { - doc: 'GraphQL Content API key for Contentful hCMS to fetch RP-provided content (https://www.contentful.com/developers/docs/references/authentication/)', - format: String, - env: 'CONTENTFUL_GRAPHQL_API_KEY', - default: '', - }, - spaceId: { - doc: 'Alphanumeric id used for instantiating the ContentfulClient (https://www.contentful.com/developers/docs/references/content-management-api/#/reference/spaces)', - format: String, - env: 'CONTENTFUL_GRAPHQL_SPACE_ID', - default: '', - }, - environment: { - doc: 'Environment alias used for instantiating the ContentfulClient (https://www.contentful.com/developers/docs/concepts/multiple-environments/)', - format: String, - env: 'CONTENTFUL_GRAPHQL_ENVIRONMENT', - default: '', - }, - firestoreCacheCollectionName: { - doc: 'Firestore collection name to store Contentful query cache', - format: String, - env: 'CONTENTFUL_FIRESTORE_CACHE_COLLECTION_NAME', - default: 'fxa-graphql-api-contentful-query-cache', - }, - }, corsOrigin: { doc: 'Value for the Access-Control-Allow-Origin response header', format: Array,