evcc-io/meter/zendure/credentials.go
2024-11-18 18:51:53 +01:00

39 lines
815 B
Go

package zendure
import (
"errors"
"net/http"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/request"
)
const (
EUCredentialsUri = "https://app.zendure.tech/eu/developer/api/apply"
GlobalCredentialsUri = "https://app.zendure.tech/v2/developer/api/apply"
)
func MqttCredentials(log *util.Logger, region, account, serial string) (CredentialsResponse, error) {
client := request.NewHelper(log)
data := CredentialsRequest{
SnNumber: serial,
Account: account,
}
uri := GlobalCredentialsUri
if region == "EU" {
uri = EUCredentialsUri
}
req, _ := request.New(http.MethodPost, uri, request.MarshalJSON(data), request.JSONEncoding)
var res CredentialsResponse
err := client.DoJSON(req, &res)
if err == nil && !res.Success {
err = errors.New(res.Msg)
}
return res, err
}