diff options
Diffstat (limited to 'src/frontend/gateways/rpc/Recommendations.gateway.ts')
| -rw-r--r-- | src/frontend/gateways/rpc/Recommendations.gateway.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/frontend/gateways/rpc/Recommendations.gateway.ts b/src/frontend/gateways/rpc/Recommendations.gateway.ts new file mode 100644 index 0000000..c58a470 --- /dev/null +++ b/src/frontend/gateways/rpc/Recommendations.gateway.ts @@ -0,0 +1,21 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +import { ChannelCredentials } from '@grpc/grpc-js'; +import { ListRecommendationsResponse, RecommendationServiceClient } from '../../protos/demo'; + +const { RECOMMENDATION_ADDR = '' } = process.env; + +const client = new RecommendationServiceClient(RECOMMENDATION_ADDR, ChannelCredentials.createInsecure()); + +const RecommendationsGateway = () => ({ + listRecommendations(userId: string, productIds: string[]) { + return new Promise<ListRecommendationsResponse>((resolve, reject) => + client.listRecommendations({ userId, productIds }, (error, response) => + error ? reject(error) : resolve(response) + ) + ); + }, +}); + +export default RecommendationsGateway(); |
