Add metadate management in grpc
All checks were successful
Build and Push Docker Image / build_and_push (push) Successful in 2m7s
All checks were successful
Build and Push Docker Image / build_and_push (push) Successful in 2m7s
This commit is contained in:
@@ -19,6 +19,7 @@ func (a Account) ToStorageType() storage.Account {
|
||||
ID: a.Id,
|
||||
Namespace: a.Namespace,
|
||||
Data: map[string]any{},
|
||||
Metadata: map[string]any{},
|
||||
Authentication: storage.AccountAuth{
|
||||
Local: localauth,
|
||||
},
|
||||
@@ -35,6 +36,17 @@ func (a Account) ToStorageType() storage.Account {
|
||||
account.Data[k] = data
|
||||
}
|
||||
|
||||
for k, d := range a.Metadata.GetFields() {
|
||||
jsondata, err := protojson.Marshal(d)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("")
|
||||
break
|
||||
}
|
||||
var data any
|
||||
json.Unmarshal(jsondata, &data)
|
||||
account.Metadata[k] = data
|
||||
}
|
||||
|
||||
return account
|
||||
}
|
||||
|
||||
@@ -84,10 +96,22 @@ func AccountFromStorageType(account *storage.Account) (*Account, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
m, err := sanitizeData(account.Metadata)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
metadata, err := structpb.NewStruct(m)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &Account{
|
||||
Id: account.ID,
|
||||
Namespace: account.Namespace,
|
||||
Data: data,
|
||||
Metadata: metadata,
|
||||
Authentication: &AccountAuth{
|
||||
Local: lc,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user