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

47 lines
869 B
Go

package client
import (
"fmt"
)
type moneycorpErrors struct {
Errors []*moneycorpError `json:"errors"`
}
func (mes *moneycorpErrors) Error() error {
return toError(0, *mes).Error()
}
type moneycorpError struct {
Status int `json:"status"`
Code string `json:"code"`
Title string `json:"title"`
Detail string `json:"detail"`
}
func (me *moneycorpError) Error() error {
var err error
if me.Detail == "" {
err = fmt.Errorf("unexpected status code: %d", me.Status)
} else {
err = fmt.Errorf("%d: %s", me.Status, me.Detail)
}
return err
}
func toError(statusCode int, ces moneycorpErrors) *moneycorpError {
if len(ces.Errors) == 0 {
return &moneycorpError{
Status: statusCode,
}
}
return &moneycorpError{
Status: ces.Errors[0].Status,
Code: ces.Errors[0].Code,
Title: ces.Errors[0].Title,
Detail: ces.Errors[0].Detail,
}
}