From 98f9e47940526a072e171de2140f9cb082ac34fa Mon Sep 17 00:00:00 2001 From: clD11 <23483715+clD11@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:41:42 +0100 Subject: [PATCH 1/3] reactor: remove unnecessary field from origin skus and update buffer size (#2902) --- services/skus/skus.go | 6 ++---- services/skus/skus_test.go | 24 ++++++++---------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/services/skus/skus.go b/services/skus/skus.go index ebac0e43d..c8910eb24 100644 --- a/services/skus/skus.go +++ b/services/skus/skus.go @@ -321,9 +321,8 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe // Location depends on env. Description: "brave-origin-premium", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), // StripeMetadata depends on env. @@ -336,9 +335,8 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe // Location depends on env. Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), // StripeMetadata depends on env. diff --git a/services/skus/skus_test.go b/services/skus/skus_test.go index dc5650755..844fe310a 100644 --- a/services/skus/skus_test.go +++ b/services/skus/skus_test.go @@ -852,9 +852,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.com", Description: "brave-origin-premium", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -870,9 +869,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.com", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -966,9 +964,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.bravesoftware.com", Description: "brave-origin-premium", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -984,9 +981,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.bravesoftware.com", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -1080,9 +1076,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -1098,9 +1093,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -1194,9 +1188,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ @@ -1212,9 +1205,8 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", - CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), - IssuerTokenBuffer: ptrTo(3), + IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), CredentialValidDurationEach: ptrTo("P1M"), StripeMetadata: &model.ItemStripeMetadata{ From daecf6ed59a1538528b2f55981b0979b32dd0d4a Mon Sep 17 00:00:00 2001 From: clD11 <23483715+clD11@users.noreply.github.com> Date: Thu, 31 Jul 2025 13:10:35 +0100 Subject: [PATCH 2/3] reactor: radd credential valid duration to origin sku (#2903) --- services/skus/skus.go | 2 ++ services/skus/skus_test.go | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/services/skus/skus.go b/services/skus/skus.go index c8910eb24..d9888b98a 100644 --- a/services/skus/skus.go +++ b/services/skus/skus.go @@ -321,6 +321,7 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe // Location depends on env. Description: "brave-origin-premium", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -335,6 +336,7 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe // Location depends on env. Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), diff --git a/services/skus/skus_test.go b/services/skus/skus_test.go index 844fe310a..6250c1c73 100644 --- a/services/skus/skus_test.go +++ b/services/skus/skus_test.go @@ -852,6 +852,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.com", Description: "brave-origin-premium", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -869,6 +870,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.com", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -964,6 +966,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.bravesoftware.com", Description: "brave-origin-premium", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -981,6 +984,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.bravesoftware.com", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -1076,6 +1080,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -1093,6 +1098,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -1188,6 +1194,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("4.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), @@ -1205,6 +1212,7 @@ func TestNewOrderItemReqNewMobileSet(t *testing.T) { Location: "origin.brave.software", Description: "brave-origin-premium-year", CredentialType: "time-limited-v2", + CredentialValidDuration: "P1M", Price: decimal.RequireFromString("49.99"), IssuerTokenBuffer: ptrTo(1), IssuerTokenOverlap: ptrTo(0), From 74d0d06b6f88062eb338928ea33412d7caf5c726 Mon Sep 17 00:00:00 2001 From: clD11 <23483715+clD11@users.noreply.github.com> Date: Mon, 4 Aug 2025 20:34:34 +0100 Subject: [PATCH 3/3] refactor: improve order linking logging (#2904) --- services/skus/controllers.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/skus/controllers.go b/services/skus/controllers.go index 7ec9f99d8..06fdf2eaa 100644 --- a/services/skus/controllers.go +++ b/services/skus/controllers.go @@ -1468,6 +1468,8 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc * if err := valid.StructCtx(ctx, &req); err != nil { verrs, ok := collectValidationErrors(err) if !ok { + lg.Err(err).Msg("failed to validate request") + return handlers.ValidationError("request", map[string]interface{}{"request-body": err.Error()}) } @@ -1476,8 +1478,12 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc * ord, err := svc.createOrderWithReceipt(ctx, req) if err != nil { + lgr := lg.With().Bytes("raw_receipt", raw).Logger() + // Found an existing order, respond with the id (ord guaranteed not to be nil). if errors.Is(err, model.ErrOrderExistsForReceipt) { + lgr.Err(err).Msg("failed order already exists for receipt") + result := model.CreateOrderWithReceiptResponse{ID: ord.ID.String()} return handlers.RenderContent(ctx, result, w, http.StatusConflict) @@ -1486,12 +1492,12 @@ func handleCreateOrderFromReceiptH(w http.ResponseWriter, r *http.Request, svc * // Use new so that the shorter IF and narrow scope are possible (via if := ...; {}). // It's an example of one of the few legit uses for 'new'. if rverr := new(receiptValidError); errors.As(err, &rverr) { - lg.Warn().Err(err).Msg("failed to validate receipt with vendor") + lgr.Warn().Err(rverr).Msg("failed to validate receipt with vendor") return handleReceiptErr(rverr.err) } - lg.Warn().Err(err).Msg("failed to create order") + lgr.Warn().Err(err).Msg("failed to create order") return handlers.WrapError(err, "failed to create order", http.StatusInternalServerError) }