Skip to content

Commit 635f58a

Browse files
author
Rizal Widyarta Gowandy
authored
Merge pull request #13 from ohmpatel1997/main
changed the metadata type
2 parents 05e3008 + aca5a72 commit 635f58a

File tree

6 files changed

+36
-40
lines changed

6 files changed

+36
-40
lines changed

example/main.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ func main() {
3737
Currency: "USD",
3838
},
3939
PricingType: enum.PricingTypeFixedPrice,
40-
Metadata: entity.CreateChargeMetadata{
41-
CustomerID: "id_1005",
42-
CustomerName: "Satoshi Nakamoto",
40+
Metadata: map[string]string{
41+
"customer_id": "id_1005",
42+
"customer_name": "Satoshi Nakamoto",
4343
},
4444
RedirectURL: "https://charge/completed/page",
4545
CancelURL: "https://charge/canceled/page",

main_integration_test.go

+22-22
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func TestClient_CreateCharge_Integration(t *testing.T) {
6464
Description: "",
6565
LocalPrice: entity.CreateChargePrice{},
6666
PricingType: "",
67-
Metadata: entity.CreateChargeMetadata{},
67+
Metadata: map[string]string{},
6868
RedirectURL: "",
6969
CancelURL: "",
7070
},
@@ -83,9 +83,9 @@ func TestClient_CreateCharge_Integration(t *testing.T) {
8383
Currency: "USD",
8484
},
8585
PricingType: enum.PricingTypeFixedPrice,
86-
Metadata: entity.CreateChargeMetadata{
87-
CustomerID: "id_1005",
88-
CustomerName: "Satoshi Nakamoto",
86+
Metadata: map[string]string{
87+
"customer_id": "id_1005",
88+
"customer_name": "Satoshi Nakamoto",
8989
},
9090
RedirectURL: "https://charge/completed/page",
9191
CancelURL: "https://charge/canceled/page",
@@ -150,9 +150,9 @@ func TestClient_ShowCharge_Integration(t *testing.T) {
150150
Currency: "USD",
151151
},
152152
PricingType: enum.PricingTypeFixedPrice,
153-
Metadata: entity.CreateChargeMetadata{
154-
CustomerID: "id_1005",
155-
CustomerName: "Satoshi Nakamoto",
153+
Metadata: map[string]string{
154+
"customer_id": "id_1005",
155+
"customer_name": "Satoshi Nakamoto",
156156
},
157157
RedirectURL: "https://charge/completed/page",
158158
CancelURL: "https://charge/canceled/page",
@@ -183,9 +183,9 @@ func TestClient_ShowCharge_Integration(t *testing.T) {
183183
Currency: "USD",
184184
},
185185
PricingType: enum.PricingTypeFixedPrice,
186-
Metadata: entity.CreateChargeMetadata{
187-
CustomerID: "id_1005",
188-
CustomerName: "Satoshi Nakamoto",
186+
Metadata: map[string]string{
187+
"customer_id": "id_1005",
188+
"customer_name": "Satoshi Nakamoto",
189189
},
190190
RedirectURL: "https://charge/completed/page",
191191
CancelURL: "https://charge/canceled/page",
@@ -347,9 +347,9 @@ func TestClient_CancelCharge_Integration(t *testing.T) {
347347
Currency: "USD",
348348
},
349349
PricingType: enum.PricingTypeFixedPrice,
350-
Metadata: entity.CreateChargeMetadata{
351-
CustomerID: "id_1005",
352-
CustomerName: "Satoshi Nakamoto",
350+
Metadata: map[string]string{
351+
"customer_id": "id_1005",
352+
"customer_name": "Satoshi Nakamoto",
353353
},
354354
RedirectURL: "https://charge/completed/page",
355355
CancelURL: "https://charge/canceled/page",
@@ -380,9 +380,9 @@ func TestClient_CancelCharge_Integration(t *testing.T) {
380380
Currency: "USD",
381381
},
382382
PricingType: enum.PricingTypeFixedPrice,
383-
Metadata: entity.CreateChargeMetadata{
384-
CustomerID: "id_1005",
385-
CustomerName: "Satoshi Nakamoto",
383+
Metadata: map[string]string{
384+
"customer_id": "id_1005",
385+
"customer_name": "Satoshi Nakamoto",
386386
},
387387
RedirectURL: "https://charge/completed/page",
388388
CancelURL: "https://charge/canceled/page",
@@ -453,9 +453,9 @@ func TestClient_ResolveCharge_Integration(t *testing.T) {
453453
Currency: "USD",
454454
},
455455
PricingType: enum.PricingTypeFixedPrice,
456-
Metadata: entity.CreateChargeMetadata{
457-
CustomerID: "id_1005",
458-
CustomerName: "Satoshi Nakamoto",
456+
Metadata: map[string]string{
457+
"customer_id": "id_1005",
458+
"customer_name": "Satoshi Nakamoto",
459459
},
460460
RedirectURL: "https://charge/completed/page",
461461
CancelURL: "https://charge/resolveed/page",
@@ -486,9 +486,9 @@ func TestClient_ResolveCharge_Integration(t *testing.T) {
486486
Currency: "USD",
487487
},
488488
PricingType: enum.PricingTypeFixedPrice,
489-
Metadata: entity.CreateChargeMetadata{
490-
CustomerID: "id_1005",
491-
CustomerName: "Satoshi Nakamoto",
489+
Metadata: map[string]string{
490+
"customer_id": "id_1005",
491+
"customer_name": "Satoshi Nakamoto",
492492
},
493493
RedirectURL: "https://charge/completed/page",
494494
CancelURL: "https://charge/resolveed/page",

pkg/entity/charges.go

+7-12
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,13 @@ import (
99
// Reference: https://commerce.coinbase.com/docs/api/#create-a-charge
1010

1111
type CreateChargeReq struct {
12-
Name string `json:"name"`
13-
Description string `json:"description"`
14-
LocalPrice CreateChargePrice `json:"local_price"`
15-
PricingType enum.PricingType `json:"pricing_type"`
16-
Metadata CreateChargeMetadata `json:"metadata"`
17-
RedirectURL string `json:"redirect_url"`
18-
CancelURL string `json:"cancel_url"`
19-
}
20-
21-
type CreateChargeMetadata struct {
22-
CustomerID string `json:"customer_id"`
23-
CustomerName string `json:"customer_name"`
12+
Name string `json:"name"`
13+
Description string `json:"description"`
14+
LocalPrice CreateChargePrice `json:"local_price"`
15+
PricingType enum.PricingType `json:"pricing_type"`
16+
Metadata map[string]string `json:"metadata"`
17+
RedirectURL string `json:"redirect_url"`
18+
CancelURL string `json:"cancel_url"`
2419
}
2520

2621
type CreateChargePrice struct {

pkg/entity/charges_resource.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ type ChargeResource struct {
2727
Status enum.ChargeStatus `json:"status"`
2828
Context enum.ChargeUnresolvedContext `json:"context,omitempty"`
2929
} `json:"timeline"`
30-
Metadata struct{} `json:"metadata"`
31-
PricingType enum.PricingType `json:"pricing_type"`
30+
Metadata map[string]string `json:"metadata"`
31+
PricingType enum.PricingType `json:"pricing_type"`
3232
Pricing struct {
3333
Local struct {
3434
Amount string `json:"amount"`

pkg/stub/charges.go

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func (c *Charges) Create(ctx context.Context, req *entity.CreateChargeReq) (*ent
2929
data.Pricing.Local = req.LocalPrice
3030
data.Description = req.Description
3131
data.PricingType = req.PricingType
32+
data.Metadata = req.Metadata
3233

3334
// Create webhook if requested.
3435
webhookReq := GetWebhookReq(ctx)

pkg/stub/charges_resource.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func CreateChargeResource() entity.ChargeResource {
3636
Context: enum.ChargeUnresolvedContextNone,
3737
},
3838
},
39-
Metadata: struct{}{},
39+
Metadata: map[string]string{},
4040
PricingType: enum.PricingTypeFixedPrice,
4141
Pricing: struct {
4242
Local struct {

0 commit comments

Comments
 (0)