signald-go/tools/generator/errors.go.tmpl

37 lines
1.1 KiB
Cheetah

package {{.Version}}
// {{ .Banner }}
import (
"encoding/json"
"fmt"
client_protocol "gitlab.com/signald/signald-go/signald/client-protocol"
)
func mkerr(response client_protocol.BasicResponse) error {
switch response.ErrorType { {{ range $structName, $type := .Types }}
case "{{ $structName }}":
result := {{ $structName }}{}
err := json.Unmarshal(response.Error, &result)
if err != nil {
return err
}
return result{{ end }}
default:
return fmt.Errorf("unexpected response type from signald: %s: %s", response.ErrorType, string(response.Error))
}
}
{{ range $structName, $type := .Types }}{{if ne $type.Doc ""}}// {{$structName}}: {{$type.Doc}}{{end}}
type {{ $structName }} struct {
{{if $type.Request}} Request{{end}}
{{ range $fieldName, $field := $type.Fields }}{{ $field.FieldName }} {{if $field.List}}[]{{end}}{{ $field.Type }} `json:"{{$fieldName}},omitempty" yaml:"{{$fieldName}},omitempty"`{{if ne $field.Doc ""}} // {{$field.Doc}}{{end}}
{{ end }}
}
func (e {{ $structName }}) Error() string {
return e.Message
}
{{ end }}