Files
CrimsonandGitHub 61cae8af0a chore: Move all CE plugins to own go modules (#780)
* 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
2026-07-01 14:53:02 +00:00

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
}