// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 import { ChannelCredentials } from '@grpc/grpc-js'; import { Cart, CartItem, CartServiceClient, Empty } from '../../protos/demo'; const { CART_ADDR = '' } = process.env; const client = new CartServiceClient(CART_ADDR, ChannelCredentials.createInsecure()); const CartGateway = () => ({ getCart(userId: string) { return new Promise((resolve, reject) => client.getCart({ userId }, (error, response) => (error ? reject(error) : resolve(response))) ); }, addItem(userId: string, item: CartItem) { return new Promise((resolve, reject) => client.addItem({ userId, item }, (error, response) => (error ? reject(error) : resolve(response))) ); }, emptyCart(userId: string) { return new Promise((resolve, reject) => client.emptyCart({ userId }, (error, response) => (error ? reject(error) : resolve(response))) ); }, }); export default CartGateway();