Skip to content

Commit 6254560

Browse files
hydra-ysevacwmXok300
authored
feat: adding docs for payment metadata (#124)
Co-authored-by: vacwmX <vacwm01@gmail.com> Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>
1 parent 0926563 commit 6254560

File tree

10 files changed

+845
-0
lines changed

10 files changed

+845
-0
lines changed

snippets/csharp/Metadata.cs

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
using Breez.Sdk;
2+
using System.Text.Json;
3+
4+
public class MetadataSnippets
5+
{
6+
public void SetPaymentMetadata(BlockingBreezServices sdk)
7+
{
8+
// ANCHOR: set-payment-metadata
9+
sdk.SetPaymentMetadata("target-payment-hash", "{\"myCustomValue\":true}");
10+
// ANCHOR_END: set-payment-metadata
11+
}
12+
13+
public void FilterPaymentMetadata(BlockingBreezServices sdk)
14+
{
15+
// ANCHOR: filter-payment-metadata
16+
try
17+
{
18+
var metadataFilters = new List<MetadataFilter>() {
19+
new MetadataFilter(
20+
jsonPath: "myCustomValue",
21+
jsonValue: "true"
22+
)
23+
};
24+
25+
var payments = sdk.ListPayments(
26+
new ListPaymentsRequest(
27+
metadataFilters: metadataFilters
28+
)
29+
);
30+
}
31+
catch (Exception)
32+
{
33+
// Handle error
34+
}
35+
// ANCHOR_END: filter-payment-metadata
36+
}
37+
38+
public void FilterPaymentMetadataString(BlockingBreezServices sdk)
39+
{
40+
// ANCHOR: filter-payment-metadata-string
41+
var metadataFilters = new List<MetadataFilter>() {
42+
new MetadataFilter(
43+
jsonPath: "customerName",
44+
jsonValue: "\"Satoshi Nakamoto\""
45+
),
46+
new MetadataFilter(
47+
jsonPath: "customerName",
48+
jsonValue: JsonSerializer.Serialize("Satoshi Nakamoto")
49+
)
50+
};
51+
// ANCHOR_END: filter-payment-metadata-string
52+
}
53+
54+
public void FilterPaymentMetadataObject(BlockingBreezServices sdk)
55+
{
56+
// ANCHOR: filter-payment-metadata-object
57+
// This will *NOT* work
58+
var _metadataFilters = new List<MetadataFilter>() {
59+
new MetadataFilter(
60+
jsonPath: "parent.nestedArray",
61+
jsonValue: "[1, 2, 3]"
62+
)
63+
};
64+
65+
// Any of these will work
66+
var metadataFilters = new List<MetadataFilter>() {
67+
new MetadataFilter(
68+
jsonPath: "parent.nestedArray",
69+
jsonValue: "[1,2,3]"
70+
),
71+
new MetadataFilter(
72+
jsonPath: "parent.nestedArray",
73+
jsonValue: JsonSerializer.Serialize(new int[] {1, 2, 3})
74+
)
75+
};
76+
// ANCHOR_END: filter-payment-metadata-object
77+
}
78+
}
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import 'package:breez_sdk/breez_sdk.dart';
2+
import 'package:breez_sdk/bridge_generated.dart';
3+
4+
Future<void> setPaymentMetadata({required String paymentHash, required String metadata}) async {
5+
// ANCHOR: set-payment-metadata
6+
await BreezSDK().setPaymentMetadata(hash: "target-payment-hash", metadata: '{"myCustomValue":true}');
7+
// ANCHOR_END: set-payment-metadata
8+
}
9+
10+
Future<void> filterPaymentMetadata() async {
11+
// ANCHOR: filter-payment-metadata
12+
List<MetadataFilter> metadataFilters = [
13+
MetadataFilter(
14+
jsonPath: "myCustomValue",
15+
jsonValue: "true",
16+
),
17+
];
18+
19+
await BreezSDK().listPayments(
20+
req: ListPaymentsRequest(
21+
metadataFilters: metadataFilters
22+
));
23+
// ANCHOR_END: filter-payment-metadata
24+
25+
// ANCHOR: filter-payment-metadata-string
26+
metadataFilters = [
27+
MetadataFilter(
28+
jsonPath: "customerName",
29+
jsonValue: '"Satoshi Nakamoto"',
30+
),
31+
];
32+
// ANCHOR_END: filter-payment-metadata-string
33+
34+
// ANCHOR: filter-payment-metadata-object
35+
// This will *NOT* work
36+
metadataFilters = [
37+
MetadataFilter(
38+
jsonPath: "parent.nestedArray",
39+
jsonValue: "[1, 2, 3]",
40+
),
41+
];
42+
43+
// Any of these will work
44+
metadataFilters = [
45+
MetadataFilter(
46+
jsonPath: "parent.nestedArray",
47+
jsonValue: "[1,2,3]",
48+
),
49+
];
50+
// ANCHOR_END: filter-payment-metadata-object
51+
}

snippets/go/metadata.go

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package example
2+
3+
import (
4+
"encoding/json"
5+
"log"
6+
7+
"github.com/breez/breez-sdk-go/breez_sdk"
8+
)
9+
10+
func SetPaymentMetadata() {
11+
// ANCHOR: set-payment-metadata
12+
sdk.SetPaymentMetadata("target-payment-hash", `{"myCustomValue":true}`)
13+
// ANCHOR_END: set-payment-metadata
14+
}
15+
16+
func FilterPaymentMetadata() {
17+
// ANCHOR: filter-payment-metadata
18+
metadataFilters := []breez_sdk.MetadataFilter{
19+
{JsonPath: "myCustomValue", JsonValue: "true"},
20+
}
21+
22+
payments, err := sdk.ListPayments(breez_sdk.ListPaymentsRequest{
23+
MetadataFilters: &metadataFilters,
24+
})
25+
26+
if err != nil {
27+
// handle error
28+
}
29+
// ANCHOR_END: filter-payment-metadata
30+
log.Printf("%#v", payments)
31+
}
32+
33+
func FilterPaymentMetadataString() {
34+
// ANCHOR: filter-payment-metadata-string
35+
metadataFilters := []breez_sdk.MetadataFilter{
36+
{JsonPath: "customerName", JsonValue: "\"Satoshi Nakamoto\""},
37+
}
38+
39+
jsonValue, _ := json.Marshal("Satoshi Nakamoto")
40+
metadataFilters = []breez_sdk.MetadataFilter{
41+
{
42+
JsonPath: "customerName",
43+
JsonValue: string(jsonValue),
44+
},
45+
}
46+
// ANCHOR_END: filter-payment-metadata-string
47+
48+
sdk.ListPayments(breez_sdk.ListPaymentsRequest{
49+
MetadataFilters: &metadataFilters,
50+
})
51+
}
52+
53+
func FilterPaymentMetadataObject() {
54+
// ANCHOR: filter-payment-metadata-object
55+
// This will *NOT* work
56+
metadataFilters := []breez_sdk.MetadataFilter{
57+
{JsonPath: "parent.nestedArray", JsonValue: "[1, 2, 3]"},
58+
}
59+
60+
// Any of these will work
61+
jsonValue, _ := json.Marshal([]int{1, 2, 3})
62+
63+
metadataFilters = []breez_sdk.MetadataFilter{
64+
{JsonPath: "parent.nestedArray", JsonValue: "[1,2,3]"},
65+
{JsonPath: "parent.nestedArray", JsonValue: string(jsonValue)},
66+
}
67+
// ANCHOR_END: filter-payment-metadata-object
68+
69+
sdk.ListPayments(breez_sdk.ListPaymentsRequest{
70+
MetadataFilters: &metadataFilters,
71+
})
72+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.example.kotlinmpplib
2+
3+
import breez_sdk.*
4+
class Metadata {
5+
fun SetPaymentMetadata(sdk: BlockingBreezServices) {
6+
// ANCHOR: set-payment-metadata
7+
try {
8+
sdk.setPaymentMetadata("target-payment-hash", """{"myCustomValue":true}""")
9+
} catch (e: Exception) {
10+
// Handle error
11+
}
12+
// ANCHOR_END: set-payment-metadata
13+
}
14+
15+
fun FilterPaymentMetadata(sdk: BlockingBreezServices) {
16+
// ANCHOR: filter-payment-metadata
17+
val metadataFilters = listOf(MetadataFilter(
18+
jsonPath = "myCustomValue",
19+
jsonValue = "true"
20+
))
21+
22+
try {
23+
sdk.listPayments(
24+
ListPaymentsRequest(
25+
metadataFilters = metadataFilters
26+
))
27+
} catch (e: Exception) {
28+
// handle error
29+
}
30+
// ANCHOR_END: filter-payment-metadata
31+
}
32+
33+
fun FilterPaymentMetadataString(sdk: BlockingBreezServices) {
34+
// ANCHOR: filter-payment-metadata-string
35+
val metadataFilters = listOf(MetadataFilter(
36+
jsonPath = "customerName",
37+
jsonValue = "\"Satoshi Nakamoto\""
38+
))
39+
// ANCHOR_END: filter-payment-metadata-string
40+
}
41+
42+
fun FilterPaymentMetadataObject(sdk: BlockingBreezServices) {
43+
// ANCHOR: filter-payment-metadata-object
44+
// This will *NOT* work
45+
val _metadataFilters = listOf(MetadataFilter(
46+
jsonPath = "parent.nestedArray",
47+
jsonValue = "[1, 2, 3]"
48+
))
49+
50+
// Any of these will work
51+
val metadataFilters = listOf(MetadataFilter(
52+
jsonPath = "parent.nestedArray",
53+
jsonValue = "[1,2,3]"
54+
))
55+
// ANCHOR_END: filter-payment-metadata-object
56+
}
57+
}

snippets/python/src/metadata.py

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import breez_sdk
2+
3+
def set_payment_metadata(sdk_services):
4+
try:
5+
# ANCHOR: set-payment-metadata
6+
sdk_services.set_payment_metadata("target-payment-hash", '{"myCustomValue":true}')
7+
# ANCHOR_END: set-payment-metadata
8+
except Exception as error:
9+
# handle error
10+
raise
11+
12+
def filter_payment_metadata(sdk_services):
13+
# ANCHOR: filter-payment-metadata
14+
metadata_filters = [
15+
breez_sdk.MetadataFilter("myCustomValue", "true")
16+
]
17+
18+
try:
19+
sdk_services.list_payments(breez_sdk.ListPaymentsRequest(
20+
metadata_filters = metadata_filters
21+
))
22+
except Exception as error:
23+
# handle error
24+
raise
25+
# ANCHOR_END: filter-payment-metadata
26+
27+
# ANCHOR: filter-payment-metadata-string
28+
metadata_filters = [
29+
breez_sdk.MetadataFilter("customerName", "\"Satoshi Nakamoto\""),
30+
breez_sdk.MetadataFilter("customerName", json.dumps("Satoshi Nakamoto")),
31+
]
32+
# ANCHOR_END: filter-payment-metadata-string
33+
34+
# ANCHOR: filter-payment-metadata-object
35+
# This will *NOT* work
36+
metadata_filters = [
37+
breez_sdk.MetadataFilter("parent.nestedArray", "[1, 2, 3]")
38+
]
39+
40+
# Any of these will work
41+
metadata_filters = [
42+
breez_sdk.MetadataFilter("parent.nestedArray", "[1,2,3]"),
43+
breez_sdk.MetadataFilter("parent.nestedArray", json.dumps([1,2,3], separators=(',', ':'))),
44+
]
45+
# ANCHOR_END: filter-payment-metadata-object

snippets/react-native/metadata.ts

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import { setPaymentMetadata, listPayments } from '@breeztech/react-native-breez-sdk'
2+
3+
const testSetPaymentMetadata = async () => {
4+
// ANCHOR: set-payment-metadata
5+
await setPaymentMetadata('target-payment-hash', '{"myCustomValue":true}')
6+
// ANCHOR_END: set-payment-metadata
7+
}
8+
9+
const testFilterPaymentMetadata = async () => {
10+
// ANCHOR: filter-payment-metadata
11+
const metadataFilters = [
12+
{
13+
jsonPath: 'myCustomValue',
14+
jsonValue: 'true'
15+
}
16+
]
17+
18+
try {
19+
await listPayments({
20+
metadataFilters
21+
})
22+
} catch (err) {
23+
// handle error
24+
}
25+
// ANCHOR_END: filter-payment-metadata
26+
}
27+
28+
const testFilterPaymentMetadataString = async () => {
29+
// ANCHOR: filter-payment-metadata-string
30+
// Note: These are equivalent
31+
const metadataFilters = [
32+
{
33+
jsonPath: 'customerName',
34+
jsonValue: 'Satoshi Nakamoto'
35+
},
36+
{
37+
jsonPath: 'customerName',
38+
jsonValue: JSON.stringify('Satoshi Nakamoto')
39+
}
40+
]
41+
// ANCHOR_END: filter-payment-metadata-string
42+
}
43+
44+
const testFilterPaymentMetadataObject = async () => {
45+
// ANCHOR: filter-payment-metadata-object
46+
// This will *NOT* work
47+
const _metadataFilters = [
48+
{
49+
jsonPath: 'parent.nestedArray',
50+
jsonValue: '[1, 2, 3]'
51+
}
52+
]
53+
54+
// Any of these will work
55+
const metadataFilters = [
56+
{
57+
jsonPath: 'parent.nestedArray',
58+
jsonValue: '[1,2,3]'
59+
},
60+
{
61+
jsonPath: 'parent.nestedArray',
62+
jsonValue: JSON.stringify([1, 2, 3])
63+
}
64+
]
65+
// ANCHOR_END: filter-payment-metadata-object
66+
}

0 commit comments

Comments
 (0)