管理账户偏好¶
读取当前账户的语言和时区,并提交调用方选择的新偏好。
准备¶
语言和时区:先运行示例查看当前语言和时区,再选择需要调整的值;未指定的项目保持当前值。
需要更新时,在终端填写目标语言和时区;不设置则保持当前值:
export TARGET_LOCALE='<目标语言>'
export TARGET_TIMEZONE='<目标时区>'
读取并更新偏好¶
示例先读取当前值,再提交目标偏好并重新读取确认。此设置属于当前账户,不需要选择工作区。
import os
import moi_product_sdk as sdk
client = sdk.new_with_personal_access_token(
os.environ["PRODUCT_API_BASE_URL"], os.environ["PRODUCT_API_KEY"]
)
before = client.account().preferences()
print("当前语言:", before.locale, "当前时区:", before.timezone)
locale = os.environ.get("TARGET_LOCALE", before.locale)
timezone = os.environ.get("TARGET_TIMEZONE", before.timezone)
client.account().update_preferences(sdk.AuthPreferencesRequest(locale=locale, timezone=timezone))
current = client.account().preferences()
print("保存后语言:", current.locale, "时区:", current.timezone)
if current.locale != locale or current.timezone != timezone:
raise RuntimeError("重新读取的偏好与提交值不一致")
package main
import (
"context"
"fmt"
"os"
sdk "github.com/matrixorigin/matrixflow/sdk/go-sdk"
)
func main() {
ctx := context.Background()
client, err := sdk.NewWithPersonalAccessToken(os.Getenv("PRODUCT_API_BASE_URL"), os.Getenv("PRODUCT_API_KEY"))
if err != nil {
panic(err)
}
before, err := client.Account().Preferences(ctx)
if err != nil {
panic(err)
}
fmt.Println("当前语言:", before.GetLocale(), "当前时区:", before.GetTimezone())
locale := os.Getenv("TARGET_LOCALE")
if locale == "" {
locale = before.GetLocale()
}
timezone := os.Getenv("TARGET_TIMEZONE")
if timezone == "" {
timezone = before.GetTimezone()
}
_, err = client.Account().UpdatePreferences(ctx, &sdk.AuthPreferencesRequest{Locale: &locale, Timezone: &timezone})
if err != nil {
panic(err)
}
current, err := client.Account().Preferences(ctx)
if err != nil {
panic(err)
}
fmt.Println("保存后语言:", current.GetLocale(), "时区:", current.GetTimezone())
if current.GetLocale() != locale || current.GetTimezone() != timezone {
panic("重新读取的偏好与提交值不一致")
}
}
重新读取的语言和时区应与提交值一致;提交被拒绝时,按错误信息修正目标值。
最后更新于