mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Move all public connectors to ce/plugins * Update tooling to account for new go modules under ce * Ensure we test all CE plugins in CI * Move Dummypay to ce/plugins for simplicity's sake in the generation scripts * Use versioned pkg/domain in plugins * Ensure that renovate updates all CE plugins in a single PR when pkg/domain tags are pushed to github * Ensure Justfile commands work over all CE plugins * Copy ce plugin go.mods in dev.Dockerfile * Only add a go.mod for new plugins if they are ce * Ensure generated generic client structs are named correctly for submodule * Add coverprofile for each ce plugin * Add set -e for Justfile for loops over plugins * Infer go version from flake.nix in connector template tool
39 lines
850 B
Go
39 lines
850 B
Go
package client
|
|
|
|
import (
|
|
"errors"
|
|
"regexp"
|
|
)
|
|
|
|
const (
|
|
atlarMetadataSpecNamespace = "com.atlar.spec/"
|
|
)
|
|
|
|
func ExtractNamespacedMetadataIgnoreEmpty(metadata map[string]string, key string) *string {
|
|
value := metadata[atlarMetadataSpecNamespace+key]
|
|
return &value
|
|
}
|
|
|
|
type IdentifierData struct {
|
|
Market string
|
|
Type string
|
|
Number string
|
|
}
|
|
|
|
var identifierMetadataRegex = regexp.MustCompile(`^com\.atlar\.spec/identifier/([^/]+)/([^/]+)$`)
|
|
|
|
func metadataToIdentifierData(key, value string) (*IdentifierData, error) {
|
|
// Find matches in the input string
|
|
matches := identifierMetadataRegex.FindStringSubmatch(key)
|
|
if matches == nil {
|
|
return nil, errors.New("input does not match the expected format")
|
|
}
|
|
|
|
// Extract values from the matched groups
|
|
return &IdentifierData{
|
|
Market: matches[1],
|
|
Type: matches[2],
|
|
Number: value,
|
|
}, nil
|
|
}
|