Gracefully error on missing name attribute
This commit is contained in:
parent
be4eb6f3da
commit
bb5135e84e
3 changed files with 20 additions and 5 deletions
|
|
@ -11,6 +11,7 @@ import (
|
|||
"github.com/andig/evcc/push"
|
||||
"github.com/andig/evcc/server"
|
||||
"github.com/andig/evcc/vehicle"
|
||||
"github.com/dustin/go-humanize"
|
||||
)
|
||||
|
||||
type config struct {
|
||||
|
|
@ -100,7 +101,11 @@ func (cp *ConfigProvider) configure(conf config) error {
|
|||
|
||||
func (cp *ConfigProvider) configureMeters(conf config) error {
|
||||
cp.meters = make(map[string]api.Meter)
|
||||
for _, cc := range conf.Meters {
|
||||
for id, cc := range conf.Meters {
|
||||
if cc.Name == "" {
|
||||
return fmt.Errorf("cannot create %s meter: missing name", humanize.Ordinal(id+1))
|
||||
}
|
||||
|
||||
m, err := meter.NewFromConfig(cc.Type, cc.Other)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("cannot create meter '%s': %w", cc.Name, err)
|
||||
|
|
@ -119,7 +124,11 @@ func (cp *ConfigProvider) configureMeters(conf config) error {
|
|||
|
||||
func (cp *ConfigProvider) configureChargers(conf config) error {
|
||||
cp.chargers = make(map[string]api.Charger)
|
||||
for _, cc := range conf.Chargers {
|
||||
for id, cc := range conf.Chargers {
|
||||
if cc.Name == "" {
|
||||
return fmt.Errorf("cannot create %s charger: missing name", humanize.Ordinal(id+1))
|
||||
}
|
||||
|
||||
c, err := charger.NewFromConfig(cc.Type, cc.Other)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("cannot create charger '%s': %w", cc.Name, err)
|
||||
|
|
@ -138,11 +147,14 @@ func (cp *ConfigProvider) configureChargers(conf config) error {
|
|||
|
||||
func (cp *ConfigProvider) configureVehicles(conf config) error {
|
||||
cp.vehicles = make(map[string]api.Vehicle)
|
||||
for _, cc := range conf.Vehicles {
|
||||
for id, cc := range conf.Vehicles {
|
||||
if cc.Name == "" {
|
||||
return fmt.Errorf("cannot create %s vehicle: missing name", humanize.Ordinal(id+1))
|
||||
}
|
||||
|
||||
v, err := vehicle.NewFromConfig(cc.Type, cc.Other)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("cannot create vehicle '%s': %w", cc.Name, err)
|
||||
return err
|
||||
return fmt.Errorf("cannot create vehicle '%s': %w", cc.Name, err)
|
||||
}
|
||||
|
||||
if _, exists := cp.vehicles[cc.Name]; exists {
|
||||
|
|
|
|||
1
go.mod
1
go.mod
|
|
@ -14,6 +14,7 @@ require (
|
|||
github.com/containrrr/shoutrrr v0.4.4
|
||||
github.com/deepmap/oapi-codegen v1.6.1 // indirect
|
||||
github.com/denisbrodbeck/machineid v1.0.1
|
||||
github.com/dustin/go-humanize v1.0.0
|
||||
github.com/dylanmei/iso8601 v0.1.0
|
||||
github.com/eclipse/paho.mqtt.golang v1.3.4
|
||||
github.com/fatih/structs v1.1.0
|
||||
|
|
|
|||
2
go.sum
2
go.sum
|
|
@ -138,6 +138,8 @@ github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbj
|
|||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/dylanmei/iso8601 v0.1.0 h1:812NGQDBcqquTfH5Yeo7lwR0nzx/cKdsmf3qMjPURUI=
|
||||
github.com/dylanmei/iso8601 v0.1.0/go.mod h1:w9KhXSgIyROl1DefbMYIE7UVSIvELTbMrCfx+QkYnoQ=
|
||||
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue