summaryrefslogtreecommitdiff
path: root/src/frontend/gateways/rpc/Recommendations.gateway.ts
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
committerSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
commit82e03978b89938219958032efb1448cc76baa181 (patch)
tree626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/frontend/gateways/rpc/Recommendations.gateway.ts
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/frontend/gateways/rpc/Recommendations.gateway.ts')
-rw-r--r--src/frontend/gateways/rpc/Recommendations.gateway.ts21
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();