Skip to content

Commit c79152c

Browse files
feat: propagate cartservice exceptions (#1744)
* feat: propagate GetCart errors * feat: propagate AddItem errors --------- Co-authored-by: Juliano Costa <julianocosta89@outlook.com>
1 parent 4ee9f0c commit c79152c

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ the release.
2727
([#1733](https://github.com/open-telemetry/opentelemetry-demo/pull/1733))
2828
* [chore] Move opensearch image version to .env file
2929
([#1743](https://github.com/open-telemetry/opentelemetry-demo/pull/1743))
30+
* [cartservice] Propagate cartservice exceptions
31+
([#1744](https://github.com/open-telemetry/opentelemetry-demo/pull/1744))
3032
* [cartservice] Update cart service to fail when cartServiceFailure is enabled
3133
([#1748](https://github.com/open-telemetry/opentelemetry-demo/pull/1748))
3234

src/cartservice/src/services/CartService.cs

+28-9
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,18 @@ public override async Task<Empty> AddItem(AddItemRequest request, ServerCallCont
3333
activity?.SetTag("app.product.id", request.Item.ProductId);
3434
activity?.SetTag("app.product.quantity", request.Item.Quantity);
3535

36-
await _cartStore.AddItemAsync(request.UserId, request.Item.ProductId, request.Item.Quantity);
37-
return Empty;
36+
try
37+
{
38+
await _cartStore.AddItemAsync(request.UserId, request.Item.ProductId, request.Item.Quantity);
39+
40+
return Empty;
41+
}
42+
catch (RpcException ex)
43+
{
44+
activity?.RecordException(ex);
45+
activity?.SetStatus(ActivityStatusCode.Error, ex.Message);
46+
throw;
47+
}
3848
}
3949

4050
public override async Task<Cart> GetCart(GetCartRequest request, ServerCallContext context)
@@ -43,15 +53,24 @@ public override async Task<Cart> GetCart(GetCartRequest request, ServerCallConte
4353
activity?.SetTag("app.user.id", request.UserId);
4454
activity?.AddEvent(new("Fetch cart"));
4555

46-
var cart = await _cartStore.GetCartAsync(request.UserId);
47-
var totalCart = 0;
48-
foreach (var item in cart.Items)
56+
try
4957
{
50-
totalCart += item.Quantity;
51-
}
52-
activity?.SetTag("app.cart.items.count", totalCart);
58+
var cart = await _cartStore.GetCartAsync(request.UserId);
59+
var totalCart = 0;
60+
foreach (var item in cart.Items)
61+
{
62+
totalCart += item.Quantity;
63+
}
64+
activity?.SetTag("app.cart.items.count", totalCart);
5365

54-
return cart;
66+
return cart;
67+
}
68+
catch (RpcException ex)
69+
{
70+
activity?.RecordException(ex);
71+
activity?.SetStatus(ActivityStatusCode.Error, ex.Message);
72+
throw;
73+
}
5574
}
5675

5776
public override async Task<Empty> EmptyCart(EmptyCartRequest request, ServerCallContext context)

0 commit comments

Comments
 (0)