Skip to content

Commit d745131

Browse files
fix: (rafiki backend) Augment Wallet Address response with cardService field (#3552)
* feat: add cardServiceUrl configuration and update related routes * feat: rename CARD_SERVICE_HOST to CARD_SERVICE_URL for consistency * fix format --------- Co-authored-by: HRadry <[email protected]>
1 parent 05778cf commit d745131

File tree

11 files changed

+22
-15
lines changed

11 files changed

+22
-15
lines changed

packages/backend/jest.env.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ process.env.AUTH_ADMIN_API_SECRET = 'test-secret'
1616
process.env.OPERATOR_TENANT_ID = 'cf5fd7d3-1eb1-4041-8e43-ba45747e9e5d'
1717
process.env.API_SECRET = 'KQEXlZO65jUJXakXnLxGO7dk387mt71G9tZ42rULSNU='
1818
process.env.EXCHANGE_RATES_URL = 'http://example.com/rates'
19-
process.env.CARD_SERVICE_HOST = 'http://127.0.0.1:3007'
19+
process.env.CARD_SERVICE_URL = 'http://127.0.0.1:3007'

packages/backend/src/card/service.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Logger } from 'pino'
44

55
describe('Card Service', () => {
66
let mockAxios: Partial<AxiosInstance>
7-
let cardServiceHost: string
7+
let cardServiceUrl: string
88
let mockLogger: Partial<Logger>
99
let cardService: Awaited<ReturnType<typeof createCardService>>
1010

@@ -16,10 +16,10 @@ describe('Card Service', () => {
1616
error: jest.fn(),
1717
child: jest.fn().mockReturnThis()
1818
}
19-
cardServiceHost = 'http://card-service.test'
19+
cardServiceUrl = 'http://card-service.test'
2020
cardService = await createCardService({
2121
axios: mockAxios as AxiosInstance,
22-
cardServiceHost,
22+
cardServiceUrl,
2323
logger: mockLogger as Logger
2424
})
2525
})
@@ -41,7 +41,7 @@ describe('Card Service', () => {
4141
cardService.sendPaymentEvent(eventDetails)
4242
).resolves.toBeUndefined()
4343
expect(mockAxios.post).toHaveBeenCalledWith(
44-
`${cardServiceHost}/payment-event`,
44+
`${cardServiceUrl}/payment-event`,
4545
eventDetails
4646
)
4747
})

packages/backend/src/card/service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export interface CardService {
1515

1616
interface ServiceDependencies {
1717
axios: AxiosInstance
18-
cardServiceHost: string
18+
cardServiceUrl: string
1919
logger: Logger
2020
}
2121

@@ -41,7 +41,7 @@ async function sendPaymentEvent(
4141
eventDetails: EventDetails
4242
) {
4343
const { status } = await deps.axios.post(
44-
`${deps.cardServiceHost}${PAYMENT_FOUNDED_PATH}`,
44+
`${deps.cardServiceUrl}${PAYMENT_FOUNDED_PATH}`,
4545
eventDetails
4646
)
4747

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-
cardServiceHost: envString('CARD_SERVICE_HOST')
206+
cardServiceUrl: envString('CARD_SERVICE_URL')
207207
}
208208

209209
function parseRedisTlsConfig(

packages/backend/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ export function initIocContainer(
676676
return createCardService({
677677
axios: await deps.use('axios'),
678678
logger: await deps.use('logger'),
679-
cardServiceHost: config.cardServiceHost
679+
cardServiceUrl: config.cardServiceUrl
680680
})
681681
})
682682

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,18 +118,21 @@ export class WalletAddress
118118

119119
public toOpenPaymentsType({
120120
authServer,
121-
resourceServer
121+
resourceServer,
122+
cardService
122123
}: {
123124
authServer: string
124125
resourceServer: string
126+
cardService: string
125127
}): OpenPaymentsWalletAddress {
126128
const returnVal: OpenPaymentsWalletAddress = {
127129
id: this.address,
128130
publicName: this.publicName,
129131
assetCode: this.asset.code,
130132
assetScale: this.asset.scale,
131133
authServer,
132-
resourceServer
134+
resourceServer,
135+
cardService
133136
}
134137
if (this.additionalProperties && this.additionalProperties.length) {
135138
returnVal.additionalProperties = this.additionalProperties

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ describe('Wallet Address Routes', (): void => {
123123
// Ensure the tenant id is returned for auth and resource server:
124124
authServer: `${config.authServerGrantUrl}/${config.operatorTenantId}`,
125125
resourceServer: `${config.openPaymentsUrl}/${config.operatorTenantId}`,
126+
cardService: `${config.cardServiceUrl}/${config.operatorTenantId}`,
126127
additionalProperties: {
127128
[addProp.fieldKey]: addProp.fieldValue
128129
}
@@ -166,7 +167,8 @@ describe('Wallet Address Routes', (): void => {
166167
assetScale: walletAddress.asset.scale,
167168
// Ensure the tenant id is returned for auth and resource server:
168169
authServer: `${config.authServerGrantUrl}/${walletAddress.tenantId}`,
169-
resourceServer: `${config.openPaymentsUrl}/${walletAddress.tenantId}`
170+
resourceServer: `${config.openPaymentsUrl}/${walletAddress.tenantId}`,
171+
cardService: `${config.cardServiceUrl}/${walletAddress.tenantId}`
170172
})
171173
})
172174
})

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ export async function getWalletAddress(
6262

6363
ctx.body = walletAddress.toOpenPaymentsType({
6464
authServer: `${ensureTrailingSlash(deps.config.authServerGrantUrl)}${walletAddress.tenantId}`,
65-
resourceServer: `${ensureTrailingSlash(deps.config.openPaymentsUrl)}${walletAddress.tenantId}`
65+
resourceServer: `${ensureTrailingSlash(deps.config.openPaymentsUrl)}${walletAddress.tenantId}`,
66+
cardService: `${ensureTrailingSlash(deps.config.cardServiceUrl)}${walletAddress.tenantId}`
6667
})
6768
}
6869

packages/card-service/src/config/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export const Config = {
3131
trustProxy: envBool('TRUST_PROXY', false),
3232
env: envString('NODE_ENV', 'development'),
3333
cardServicePort: envInt('CARD_SERVICE_PORT', 3007),
34+
cardServiceUrl: envString('CARD_SERVICE_URL', 'http://localhost:3007'),
3435
redisUrl: envString('REDIS_URL', 'redis://127.0.0.1:6379'),
3536
redisTls: parseRedisTlsConfig(
3637
process.env.REDIS_TLS_CA_FILE_PATH,

test/testenv/cloud-nine-wallet/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ services:
3030
KEY_ID: keyid-97a3a431-8ee1-48fc-ac85-70e2f5eba8e5
3131
PRIVATE_KEY_FILE: /workspace/private-key.pem
3232
AUTH_SERVER_INTROSPECTION_URL: http://cloud-nine-wallet-test-auth:3107
33-
CARD_SERVICE_HOST: http://cloud-nine-wallet-card-service:3007
33+
CARD_SERVICE_URL: http://cloud-nine-wallet-card-service:3007
3434
AUTH_SERVER_GRANT_URL: http://cloud-nine-wallet-test-auth:3106
3535
AUTH_ADMIN_API_URL: 'http://cloud-nine-wallet-test-auth:3003/graphql'
3636
AUTH_ADMIN_API_SECRET: 'test-secret'

0 commit comments

Comments
 (0)