package main import ( "context" "encoding/json" "github.com/bogosj/tesla" ) func selectDevice(ctx context.Context, devices []tesla.Device) (d tesla.Device, passcode string, err error) { d = devices[0] passcode = "000000" if err != nil { return tesla.Device{}, "", err } return d, passcode, nil } func login(ctx context.Context, username string, password string) (string, error) { defer log.PanicSafe() log.LogDebug("Creating client for %+v", username) client, err := tesla.NewClient( ctx, tesla.WithMFAHandler(selectDevice), tesla.WithCredentials(username, password), ) log.LogDebug("Created client for %+v", username) if err != nil { log.LogErrorType(err) return "", err } log.LogDebug("Creating token for %+v", username) t, err := client.Token() if err != nil { log.LogErrorType(err) return "", err } log.LogDebug("Created token for %+v", username) ret, err := json.Marshal(t) if err != nil { log.LogErrorType(err) return "", err } return string(ret), nil }