mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 07:37:31 +00:00
fix: language.Tag marshalling (#1110)
* fix(searchlimit): increase to 1000 * rafactor: remove unused return * fix(user): marshalling of language tag * fix(spooler): shuffle handlers on start * fix(sql): reduce max open conns from 200 to 25 per pod * chore(deps): google.golang.org/grpc and github.com/lib/pq * chore(deps): update github.com/cockroachdb/cockroach-go/v2
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
es_models "github.com/caos/zitadel/internal/eventstore/models"
|
||||
@@ -10,14 +12,12 @@ import (
|
||||
type Profile struct {
|
||||
es_models.ObjectRoot
|
||||
|
||||
FirstName string `json:"firstName,omitempty"`
|
||||
LastName string `json:"lastName,omitempty"`
|
||||
NickName string `json:"nickName,omitempty"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
PreferredLanguage language.Tag `json:"preferredLanguage,omitempty"`
|
||||
Gender int32 `json:"gender,omitempty"`
|
||||
|
||||
isUserNameUnique bool
|
||||
FirstName string `json:"firstName,omitempty"`
|
||||
LastName string `json:"lastName,omitempty"`
|
||||
NickName string `json:"nickName,omitempty"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
PreferredLanguage LanguageTag `json:"preferredLanguage,omitempty"`
|
||||
Gender int32 `json:"gender,omitempty"`
|
||||
}
|
||||
|
||||
func (p *Profile) Changes(changed *Profile) map[string]interface{} {
|
||||
@@ -34,7 +34,7 @@ func (p *Profile) Changes(changed *Profile) map[string]interface{} {
|
||||
if changed.DisplayName != "" && p.DisplayName != changed.DisplayName {
|
||||
changes["displayName"] = changed.DisplayName
|
||||
}
|
||||
if changed.PreferredLanguage != language.Und && changed.PreferredLanguage != p.PreferredLanguage {
|
||||
if language.Tag(changed.PreferredLanguage) != language.Und && changed.PreferredLanguage != p.PreferredLanguage {
|
||||
changes["preferredLanguage"] = changed.PreferredLanguage
|
||||
}
|
||||
if changed.Gender != p.Gender {
|
||||
@@ -50,7 +50,7 @@ func ProfileFromModel(profile *model.Profile) *Profile {
|
||||
LastName: profile.LastName,
|
||||
NickName: profile.NickName,
|
||||
DisplayName: profile.DisplayName,
|
||||
PreferredLanguage: profile.PreferredLanguage,
|
||||
PreferredLanguage: LanguageTag(profile.PreferredLanguage),
|
||||
Gender: int32(profile.Gender),
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,37 @@ func ProfileToModel(profile *Profile) *model.Profile {
|
||||
LastName: profile.LastName,
|
||||
NickName: profile.NickName,
|
||||
DisplayName: profile.DisplayName,
|
||||
PreferredLanguage: profile.PreferredLanguage,
|
||||
PreferredLanguage: language.Tag(profile.PreferredLanguage),
|
||||
Gender: model.Gender(profile.Gender),
|
||||
}
|
||||
}
|
||||
|
||||
type LanguageTag language.Tag
|
||||
|
||||
func (t *LanguageTag) UnmarshalJSON(data []byte) error {
|
||||
var tag string
|
||||
err := json.Unmarshal(data, &tag)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
*t = LanguageTag(language.Make(tag))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t LanguageTag) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(language.Tag(t))
|
||||
}
|
||||
|
||||
func (t *LanguageTag) MarshalBinary() ([]byte, error) {
|
||||
if t == nil {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return []byte(language.Tag(*t).String()), nil
|
||||
}
|
||||
|
||||
// UnmarshalBinary modifies the receiver so it must take a pointer receiver.
|
||||
func (t *LanguageTag) UnmarshalBinary(data []byte) error {
|
||||
*t = LanguageTag(language.Make(string(data)))
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user