Skip to content

Commit c09345b

Browse files
oana-loleanjlie
authored andcommitted
fix(backend): made CARD_SERVICE_URL optional (#3600)
* Made CARD_SERVICE_URL optional * Created cardService container only if cardServiceUrl is set in config * Added noop card service when cardServiceUrl is not provided * Regenerated graphql * Added warning when CARD_SERVICE_URL is not set
1 parent 4bd9565 commit c09345b

File tree

6 files changed

+81
-17
lines changed

6 files changed

+81
-17
lines changed

packages/backend/src/card/service.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,19 @@ export async function createCardService(
3636
}
3737
}
3838

39+
export async function createNoopCardService(
40+
logger: Logger
41+
): Promise<CardService> {
42+
return {
43+
async sendPaymentEvent(_eventDetails) {
44+
// do nothing
45+
logger.warn(
46+
'CARD_SERVICE_URL env variable not set, falling back to NoopCardService'
47+
)
48+
}
49+
}
50+
}
51+
3952
async function sendPaymentEvent(
4053
deps: ServiceDependencies,
4154
eventDetails: EventDetails

packages/backend/src/config/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ export const Config = {
203203
'SEND_TENANT_WEBHOOKS_TO_OPERATOR',
204204
false
205205
),
206-
cardServiceUrl: envString('CARD_SERVICE_URL')
206+
cardServiceUrl: process.env.CARD_SERVICE_URL
207207
}
208208

209209
function parseRedisTlsConfig(

packages/backend/src/index.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ import { createTenantService } from './tenants/service'
7777
import { AuthServiceClient } from './auth-service-client/client'
7878
import { createTenantSettingService } from './tenants/settings/service'
7979
import { createPaymentMethodProviderService } from './payment-method/provider/service'
80-
import { createCardService } from './card/service'
80+
import { createCardService, createNoopCardService } from './card/service'
8181

8282
BigInt.prototype.toJSON = function () {
8383
return this.toString()
@@ -673,11 +673,13 @@ export function initIocContainer(
673673
})
674674

675675
container.singleton('cardService', async (deps) => {
676-
return createCardService({
677-
axios: await deps.use('axios'),
678-
logger: await deps.use('logger'),
679-
cardServiceUrl: config.cardServiceUrl
680-
})
676+
return config.cardServiceUrl
677+
? createCardService({
678+
axios: await deps.use('axios'),
679+
logger: await deps.use('logger'),
680+
cardServiceUrl: config.cardServiceUrl
681+
})
682+
: createNoopCardService(await deps.use('logger'))
681683
})
682684

683685
return container

packages/backend/src/open_payments/wallet_address/model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export class WalletAddress
123123
}: {
124124
authServer: string
125125
resourceServer: string
126-
cardService: string
126+
cardService?: string
127127
}): OpenPaymentsWalletAddress {
128128
const returnVal: OpenPaymentsWalletAddress = {
129129
id: this.address,
@@ -132,7 +132,7 @@ export class WalletAddress
132132
assetScale: this.asset.scale,
133133
authServer,
134134
resourceServer,
135-
cardService
135+
...(cardService && { cardService })
136136
}
137137
if (this.additionalProperties && this.additionalProperties.length) {
138138
returnVal.additionalProperties = this.additionalProperties

packages/backend/src/open_payments/wallet_address/routes.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ export async function getWalletAddress(
6363
ctx.body = walletAddress.toOpenPaymentsType({
6464
authServer: `${ensureTrailingSlash(deps.config.authServerGrantUrl)}${walletAddress.tenantId}`,
6565
resourceServer: `${ensureTrailingSlash(deps.config.openPaymentsUrl)}${walletAddress.tenantId}`,
66-
cardService: `${ensureTrailingSlash(deps.config.cardServiceUrl)}${walletAddress.tenantId}`
66+
...(deps.config.cardServiceUrl && {
67+
cardService: `${ensureTrailingSlash(deps.config.cardServiceUrl)}${walletAddress.tenantId}`
68+
})
6769
})
6870
}
6971

packages/point-of-sale/src/graphql/generated/graphql.ts

Lines changed: 54 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)