@@ -1468,6 +1468,8 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc *
1468
1468
if err := valid .StructCtx (ctx , & req ); err != nil {
1469
1469
verrs , ok := collectValidationErrors (err )
1470
1470
if ! ok {
1471
+ lg .Err (err ).Msg ("failed to validate request" )
1472
+
1471
1473
return handlers .ValidationError ("request" , map [string ]interface {}{"request-body" : err .Error ()})
1472
1474
}
1473
1475
@@ -1476,8 +1478,12 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc *
1476
1478
1477
1479
ord , err := svc .createOrderWithReceipt (ctx , req )
1478
1480
if err != nil {
1481
+ lgr := lg .With ().Bytes ("raw_receipt" , raw ).Logger ()
1482
+
1479
1483
// Found an existing order, respond with the id (ord guaranteed not to be nil).
1480
1484
if errors .Is (err , model .ErrOrderExistsForReceipt ) {
1485
+ lgr .Err (err ).Msg ("failed order already exists for receipt" )
1486
+
1481
1487
result := model.CreateOrderWithReceiptResponse {ID : ord .ID .String ()}
1482
1488
1483
1489
return handlers .RenderContent (ctx , result , w , http .StatusConflict )
@@ -1486,12 +1492,12 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc *
1486
1492
// Use new so that the shorter IF and narrow scope are possible (via if := ...; {}).
1487
1493
// It's an example of one of the few legit uses for 'new'.
1488
1494
if rverr := new (receiptValidError ); errors .As (err , & rverr ) {
1489
- lg .Warn ().Err (err ).Msg ("failed to validate receipt with vendor" )
1495
+ lgr .Warn ().Err (rverr ).Msg ("failed to validate receipt with vendor" )
1490
1496
1491
1497
return handleReceiptErr (rverr .err )
1492
1498
}
1493
1499
1494
- lg .Warn ().Err (err ).Msg ("failed to create order" )
1500
+ lgr .Warn ().Err (err ).Msg ("failed to create order" )
1495
1501
1496
1502
return handlers .WrapError (err , "failed to create order" , http .StatusInternalServerError )
1497
1503
}
0 commit comments