Files
breez-sdk-docs/snippets/go/metadata.go
2024-02-29 23:32:59 +01:00

73 lines
1.7 KiB
Go

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,
})
}