evcc-io/vehicle/tesla/helper.go
andig 88b4ac8ac7
Some checks failed
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Demo (push) Has been cancelled
Release / Hassio Addon (push) Has been cancelled
chore: fix logical order
2024-02-19 12:25:26 +01:00

33 lines
758 B
Go

package tesla
import (
"errors"
"strings"
"sync"
"github.com/evcc-io/evcc/api"
"github.com/teslamotors/vehicle-command/pkg/connector/inet"
)
var (
mu sync.Mutex
identities = make(map[string]*Identity)
)
func getInstance(subject string) *Identity {
return identities[subject]
}
func addInstance(subject string, identity *Identity) {
identities[subject] = identity
}
// apiError converts HTTP 408 error to ErrTimeout
func apiError(err error) error {
if err != nil && (errors.Is(err, inet.ErrVehicleNotAwake) ||
strings.HasSuffix(err.Error(), "408 Request Timeout") || strings.HasSuffix(err.Error(), "408 (Request Timeout)") ||
strings.HasSuffix(err.Error(), "vehicle is offline or asleep")) {
err = api.ErrAsleep
}
return err
}