Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding docs for payment metadata #124

Merged
merged 6 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions snippets/csharp/Metadata.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
using Breez.Sdk;
using System.Text.Json;

public class MetadataSnippets
{
public void SetPaymentMetadata(BlockingBreezServices sdk)
{
// ANCHOR: set-payment-metadata
sdk.SetPaymentMetadata("target-payment-hash", "{\"myCustomValue\":true}");
// ANCHOR_END: set-payment-metadata
}

public void FilterPaymentMetadata(BlockingBreezServices sdk)
{
// ANCHOR: filter-payment-metadata
try
{
var metadataFilters = new List<MetadataFilter>() {
new MetadataFilter(
jsonPath: "myCustomValue",
jsonValue: "true"
)
};

var payments = sdk.ListPayments(
new ListPaymentsRequest(
metadataFilters: metadataFilters
)
);
}
catch (Exception)
{
// Handle error
}
// ANCHOR_END: filter-payment-metadata
}

public void FilterPaymentMetadataString(BlockingBreezServices sdk)
hydra-yse marked this conversation as resolved.
Show resolved Hide resolved
{
// ANCHOR: filter-payment-metadata-string
var metadataFilters = new List<MetadataFilter>() {
new MetadataFilter(
jsonPath: "customerName",
jsonValue: "\"Satoshi Nakamoto\""
),
new MetadataFilter(
jsonPath: "customerName",
jsonValue: JsonSerializer.Serialize("Satoshi Nakamoto")
)
};
// ANCHOR_END: filter-payment-metadata-string
}

public void FilterPaymentMetadataObject(BlockingBreezServices sdk)
hydra-yse marked this conversation as resolved.
Show resolved Hide resolved
{
// ANCHOR: filter-payment-metadata-object
// This will *NOT* work
var _metadataFilters = new List<MetadataFilter>() {
new MetadataFilter(
jsonPath: "parent.nestedArray",
jsonValue: "[1, 2, 3]"
)
};

// Any of these will work
var metadataFilters = new List<MetadataFilter>() {
new MetadataFilter(
jsonPath: "parent.nestedArray",
jsonValue: "[1,2,3]"
),
new MetadataFilter(
jsonPath: "parent.nestedArray",
jsonValue: JsonSerializer.Serialize(new int[] {1, 2, 3})
)
};
// ANCHOR_END: filter-payment-metadata-object
}
}
51 changes: 51 additions & 0 deletions snippets/dart_snippets/lib/metadata.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import 'package:breez_sdk/breez_sdk.dart';
import 'package:breez_sdk/bridge_generated.dart';

Future<void> setPaymentMetadata({required String paymentHash, required String metadata}) async {
// ANCHOR: set-payment-metadata
await BreezSDK().setPaymentMetadata(hash: "target-payment-hash", metadata: '{"myCustomValue":true}');
// ANCHOR_END: set-payment-metadata
}

Future<void> filterPaymentMetadata() async {
// ANCHOR: filter-payment-metadata
List<MetadataFilter> metadataFilters = [
MetadataFilter(
jsonPath: "myCustomValue",
jsonValue: "true",
),
];

await BreezSDK().listPayments(
req: ListPaymentsRequest(
metadataFilters: metadataFilters
));
// ANCHOR_END: filter-payment-metadata

// ANCHOR: filter-payment-metadata-string
metadataFilters = [
MetadataFilter(
jsonPath: "customerName",
jsonValue: '"Satoshi Nakamoto"',
),
];
// ANCHOR_END: filter-payment-metadata-string

// ANCHOR: filter-payment-metadata-object
// This will *NOT* work
metadataFilters = [
MetadataFilter(
jsonPath: "parent.nestedArray",
jsonValue: "[1, 2, 3]",
),
];

// Any of these will work
metadataFilters = [
MetadataFilter(
jsonPath: "parent.nestedArray",
jsonValue: "[1,2,3]",
),
];
// ANCHOR_END: filter-payment-metadata-object
}
72 changes: 72 additions & 0 deletions snippets/go/metadata.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package example

import (
"encoding/json"
"log"

"github.com/breez/breez-sdk-go/breez_sdk"
)

func SetPaymentMetadata() {
// ANCHOR: set-payment-metadata
sdk.SetPaymentMetadata("target-payment-hash", `{"myCustomValue":true}`)
// ANCHOR_END: set-payment-metadata
}

func FilterPaymentMetadata() {
// ANCHOR: filter-payment-metadata
metadataFilters := []breez_sdk.MetadataFilter{
{JsonPath: "myCustomValue", JsonValue: "true"},
}

payments, err := sdk.ListPayments(breez_sdk.ListPaymentsRequest{
MetadataFilters: &metadataFilters,
})

if err != nil {
// handle error
}
// ANCHOR_END: filter-payment-metadata
log.Printf("%#v", payments)
}

func FilterPaymentMetadataString() {
// ANCHOR: filter-payment-metadata-string
metadataFilters := []breez_sdk.MetadataFilter{
{JsonPath: "customerName", JsonValue: "\"Satoshi Nakamoto\""},
}

jsonValue, _ := json.Marshal("Satoshi Nakamoto")
metadataFilters = []breez_sdk.MetadataFilter{
{
JsonPath: "customerName",
JsonValue: string(jsonValue),
},
}
// ANCHOR_END: filter-payment-metadata-string

sdk.ListPayments(breez_sdk.ListPaymentsRequest{
MetadataFilters: &metadataFilters,
})
}

func FilterPaymentMetadataObject() {
// ANCHOR: filter-payment-metadata-object
// This will *NOT* work
metadataFilters := []breez_sdk.MetadataFilter{
{JsonPath: "parent.nestedArray", JsonValue: "[1, 2, 3]"},
}

// Any of these will work
jsonValue, _ := json.Marshal([]int{1, 2, 3})

metadataFilters = []breez_sdk.MetadataFilter{
{JsonPath: "parent.nestedArray", JsonValue: "[1,2,3]"},
{JsonPath: "parent.nestedArray", JsonValue: string(jsonValue)},
}
// ANCHOR_END: filter-payment-metadata-object

sdk.ListPayments(breez_sdk.ListPaymentsRequest{
MetadataFilters: &metadataFilters,
})
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package com.example.kotlinmpplib

import breez_sdk.*
class Metadata {
fun SetPaymentMetadata(sdk: BlockingBreezServices) {
// ANCHOR: set-payment-metadata
try {
sdk.setPaymentMetadata("target-payment-hash", """{"myCustomValue":true}""")
} catch (e: Exception) {
// Handle error
}
// ANCHOR_END: set-payment-metadata
}

fun FilterPaymentMetadata(sdk: BlockingBreezServices) {
// ANCHOR: filter-payment-metadata
val metadataFilters = listOf(MetadataFilter(
jsonPath = "myCustomValue",
jsonValue = "true"
))

try {
sdk.listPayments(
ListPaymentsRequest(
metadataFilters = metadataFilters
))
} catch (e: Exception) {
// handle error
}
// ANCHOR_END: filter-payment-metadata
}

fun FilterPaymentMetadataString(sdk: BlockingBreezServices) {
// ANCHOR: filter-payment-metadata-string
val metadataFilters = listOf(MetadataFilter(
jsonPath = "customerName",
jsonValue = "\"Satoshi Nakamoto\""
))
// ANCHOR_END: filter-payment-metadata-string
}

fun FilterPaymentMetadataObject(sdk: BlockingBreezServices) {
// ANCHOR: filter-payment-metadata-object
// This will *NOT* work
val _metadataFilters = listOf(MetadataFilter(
jsonPath = "parent.nestedArray",
jsonValue = "[1, 2, 3]"
))

// Any of these will work
val metadataFilters = listOf(MetadataFilter(
jsonPath = "parent.nestedArray",
jsonValue = "[1,2,3]"
))
// ANCHOR_END: filter-payment-metadata-object
}
}
45 changes: 45 additions & 0 deletions snippets/python/src/metadata.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import breez_sdk

def set_payment_metadata(sdk_services):
try:
# ANCHOR: set-payment-metadata
sdk_services.set_payment_metadata("target-payment-hash", '{"myCustomValue":true}')
# ANCHOR_END: set-payment-metadata
except Exception as error:
# handle error
raise

def filter_payment_metadata(sdk_services):
# ANCHOR: filter-payment-metadata
metadata_filters = [
breez_sdk.MetadataFilter("myCustomValue", "true")
]

try:
sdk_services.list_payments(breez_sdk.ListPaymentsRequest(
metadata_filters = metadata_filters
))
except Exception as error:
# handle error
raise
# ANCHOR_END: filter-payment-metadata

# ANCHOR: filter-payment-metadata-string
metadata_filters = [
breez_sdk.MetadataFilter("customerName", "\"Satoshi Nakamoto\""),
breez_sdk.MetadataFilter("customerName", json.dumps("Satoshi Nakamoto")),
]
# ANCHOR_END: filter-payment-metadata-string

# ANCHOR: filter-payment-metadata-object
# This will *NOT* work
metadata_filters = [
breez_sdk.MetadataFilter("parent.nestedArray", "[1, 2, 3]")
]

# Any of these will work
metadata_filters = [
breez_sdk.MetadataFilter("parent.nestedArray", "[1,2,3]"),
breez_sdk.MetadataFilter("parent.nestedArray", json.dumps([1,2,3], separators=(',', ':'))),
]
# ANCHOR_END: filter-payment-metadata-object
66 changes: 66 additions & 0 deletions snippets/react-native/metadata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { setPaymentMetadata, listPayments } from '@breeztech/react-native-breez-sdk'

const testSetPaymentMetadata = async () => {
// ANCHOR: set-payment-metadata
await setPaymentMetadata('target-payment-hash', '{"myCustomValue":true}')
// ANCHOR_END: set-payment-metadata
}

const testFilterPaymentMetadata = async () => {
// ANCHOR: filter-payment-metadata
const metadataFilters = [
{
jsonPath: 'myCustomValue',
jsonValue: 'true'
}
]

try {
await listPayments({
metadataFilters
})
} catch (err) {
// handle error
}
// ANCHOR_END: filter-payment-metadata
}

const testFilterPaymentMetadataString = async () => {
// ANCHOR: filter-payment-metadata-string
// Note: These are equivalent
const metadataFilters = [
{
jsonPath: 'customerName',
jsonValue: 'Satoshi Nakamoto'
},
{
jsonPath: 'customerName',
jsonValue: JSON.stringify('Satoshi Nakamoto')
}
]
// ANCHOR_END: filter-payment-metadata-string
}

const testFilterPaymentMetadataObject = async () => {
// ANCHOR: filter-payment-metadata-object
// This will *NOT* work
const _metadataFilters = [
{
jsonPath: 'parent.nestedArray',
jsonValue: '[1, 2, 3]'
}
]

// Any of these will work
const metadataFilters = [
{
jsonPath: 'parent.nestedArray',
jsonValue: '[1,2,3]'
},
{
jsonPath: 'parent.nestedArray',
jsonValue: JSON.stringify([1, 2, 3])
}
]
// ANCHOR_END: filter-payment-metadata-object
}
Loading
Loading