Skip to content

Commit f95b29b

Browse files
committed
refactor: add sub back button url to radom checkout session top level
1 parent 4a69782 commit f95b29b

File tree

4 files changed

+30
-29
lines changed

4 files changed

+30
-29
lines changed

services/skus/controllers_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1769,6 +1769,10 @@ func (suite *ControllersTestSuite) TestCreateOrder_RadomPayable() {
17691769

17701770
suite.service.radomClient = &mockRadomClient{
17711771
fnCreateCheckoutSession: func(ctx context.Context, creq *radom.CreateCheckoutSessionRequest) (radom.CreateCheckoutSessionResponse, error) {
1772+
if creq.SubBackBtnURL != "https://example-back-button.com" {
1773+
return radom.CreateCheckoutSessionResponse{}, model.Error("unexpected_response")
1774+
}
1775+
17721776
return radom.CreateCheckoutSessionResponse{
17731777
SessionID: sessID,
17741778
}, nil

services/skus/radom/radom.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ type Method struct {
3737
}
3838

3939
type LineItem struct {
40-
ProductID string `json:"productId"`
41-
SubBackBtnURL string `json:"subscriptionBackButtonUrl"`
40+
ProductID string `json:"productId"`
4241
}
4342

4443
type Metadata struct {
@@ -47,12 +46,13 @@ type Metadata struct {
4746
}
4847

4948
type CreateCheckoutSessionRequest struct {
50-
LineItems []LineItem `json:"lineItems"`
51-
Gateway *Gateway `json:"gateway"`
52-
SuccessURL string `json:"successUrl"`
53-
CancelURL string `json:"cancelUrl"`
54-
Metadata []Metadata `json:"metadata"`
55-
ExpiresAt int64 `json:"expiresAt"` // in unix seconds
49+
LineItems []LineItem `json:"lineItems"`
50+
Gateway *Gateway `json:"gateway"`
51+
SuccessURL string `json:"successUrl"`
52+
CancelURL string `json:"cancelUrl"`
53+
SubBackBtnURL string `json:"subscriptionBackButtonUrl"`
54+
Metadata []Metadata `json:"metadata"`
55+
ExpiresAt int64 `json:"expiresAt"` // in unix seconds
5656
}
5757

5858
type CreateCheckoutSessionResponse struct {

services/skus/service.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2154,16 +2154,17 @@ func (s *Service) createRadomSession(ctx context.Context, req *model.CreateOrder
21542154
return "", err
21552155
}
21562156

2157-
items, err := orderItemsToRadomLineItems(order.Items, req)
2157+
items, err := orderItemsToRadomLineItems(order.Items)
21582158
if err != nil {
21592159
return "", err
21602160
}
21612161

21622162
reqx := &radom.CreateCheckoutSessionRequest{
2163-
LineItems: items,
2164-
Gateway: s.radomGateway,
2165-
SuccessURL: surl,
2166-
CancelURL: curl,
2163+
LineItems: items,
2164+
Gateway: s.radomGateway,
2165+
SuccessURL: surl,
2166+
CancelURL: curl,
2167+
SubBackBtnURL: req.RadomMetadata.SubBackBtnURL,
21672168
Metadata: []radom.Metadata{
21682169
{
21692170
Key: "brave_order_id",
@@ -2183,7 +2184,7 @@ func (s *Service) createRadomSession(ctx context.Context, req *model.CreateOrder
21832184

21842185
const errRadomProductIDNotFound = model.Error("product id not found in metadata")
21852186

2186-
func orderItemsToRadomLineItems(orderItems []model.OrderItem, req *model.CreateOrderRequestNew) ([]radom.LineItem, error) {
2187+
func orderItemsToRadomLineItems(orderItems []model.OrderItem) ([]radom.LineItem, error) {
21872188
lineItems := make([]radom.LineItem, 0, len(orderItems))
21882189
for i := range orderItems {
21892190
pid, ok := orderItems[i].RadomProductID()
@@ -2192,8 +2193,7 @@ func orderItemsToRadomLineItems(orderItems []model.OrderItem, req *model.CreateO
21922193
}
21932194

21942195
item := radom.LineItem{
2195-
ProductID: pid,
2196-
SubBackBtnURL: req.RadomMetadata.SubBackBtnURL,
2196+
ProductID: pid,
21972197
}
21982198

21992199
lineItems = append(lineItems, item)

services/skus/service_nonint_test.go

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5209,12 +5209,17 @@ func TestService_createRadomSessID(t *testing.T) {
52095209
},
52105210
req: &model.CreateOrderRequestNew{
52115211
RadomMetadata: &model.OrderRadomMetadata{
5212-
SuccessURI: "https://example.com",
5213-
CancelURI: "https://example.com",
5212+
SuccessURI: "https://example.com",
5213+
CancelURI: "https://example.com",
5214+
SubBackBtnURL: "https://example-back-button.com",
52145215
},
52155216
},
52165217
radCl: &mockRadomClient{
52175218
fnCreateCheckoutSession: func(ctx context.Context, creq *radom.CreateCheckoutSessionRequest) (radom.CreateCheckoutSessionResponse, error) {
5219+
if creq.SubBackBtnURL != "https://example-back-button.com" {
5220+
return radom.CreateCheckoutSessionResponse{}, model.Error("unexpected_response")
5221+
}
5222+
52185223
return radom.CreateCheckoutSessionResponse{SessionID: "session_id"}, nil
52195224
},
52205225
},
@@ -5248,7 +5253,6 @@ func TestService_createRadomSessID(t *testing.T) {
52485253
func Test_orderItemsToLineItems(t *testing.T) {
52495254
type tcGiven struct {
52505255
orderItems []model.OrderItem
5251-
req *model.CreateOrderRequestNew
52525256
}
52535257

52545258
type tcExpected struct {
@@ -5288,21 +5292,14 @@ func Test_orderItemsToLineItems(t *testing.T) {
52885292
},
52895293
},
52905294
},
5291-
req: &model.CreateOrderRequestNew{
5292-
RadomMetadata: &model.OrderRadomMetadata{
5293-
SubBackBtnURL: "https://example.com",
5294-
},
5295-
},
52965295
},
52975296
exp: tcExpected{
52985297
lineItems: []radom.LineItem{
52995298
{
5300-
ProductID: "product_1",
5301-
SubBackBtnURL: "https://example.com",
5299+
ProductID: "product_1",
53025300
},
53035301
{
5304-
ProductID: "product_2",
5305-
SubBackBtnURL: "https://example.com",
5302+
ProductID: "product_2",
53065303
},
53075304
},
53085305
},
@@ -5313,7 +5310,7 @@ func Test_orderItemsToLineItems(t *testing.T) {
53135310
tc := tests[i]
53145311

53155312
t.Run(tc.name, func(t *testing.T) {
5316-
actual, err := orderItemsToRadomLineItems(tc.given.orderItems, tc.given.req)
5313+
actual, err := orderItemsToRadomLineItems(tc.given.orderItems)
53175314
must.Equal(t, tc.exp.err, err)
53185315

53195316
should.Equal(t, tc.exp.lineItems, actual)

0 commit comments

Comments
 (0)