39 lines
815 B
Go
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
|
|
}
|