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

35 lines
742 B
Go

package client
import (
"fmt"
)
type currencyCloudError struct {
StatusCode int `json:"status_code"`
ErrorCode string `json:"error_code"`
ErrorMessages map[string][]*errorMessage `json:"error_messages"`
}
type errorMessage struct {
Code string `json:"code"`
Message string `json:"message"`
}
func (ce *currencyCloudError) Error() error {
var errorMessage string
if len(ce.ErrorMessages) > 0 {
for _, message := range ce.ErrorMessages {
if len(message) > 0 {
errorMessage = message[0].Message
break
}
}
}
if errorMessage == "" {
return fmt.Errorf("unexpected status code: %d", ce.StatusCode)
}
return fmt.Errorf("%s: %s", ce.ErrorCode, errorMessage)
}