Skip to content
Snippets Groups Projects
Commit 6472fe3a authored by ko_oler's avatar ko_oler
Browse files

Добавлено поле Metadata в объект Schema для добавления возможности отличать...

Добавлено поле Metadata в объект Schema для добавления возможности отличать пользовательские коллекции от коллекций установленных расширением при их обновлении, в случае если их id совпадает
parent a1707249
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,7 @@ import ( ...@@ -13,6 +13,7 @@ import (
type Schema struct { type Schema struct {
field.Field field.Field
Loaded bool `json:"loaded"` Loaded bool `json:"loaded"`
Metadata map[string]string `json:"metadata"`
} }
func New(kv ...interface{}) *Schema { func New(kv ...interface{}) *Schema {
...@@ -35,6 +36,7 @@ func (s *Schema) Clone(reset bool) *Schema { ...@@ -35,6 +36,7 @@ func (s *Schema) Clone(reset bool) *Schema {
return &Schema{ return &Schema{
Field: *s.Field.Clone(reset), Field: *s.Field.Clone(reset),
Loaded: s.Loaded, Loaded: s.Loaded,
Metadata: s.Metadata,
} }
} }
......
...@@ -6,8 +6,8 @@ import ( ...@@ -6,8 +6,8 @@ import (
) )
type jsonSchema struct { type jsonSchema struct {
//Field json.RawMessage `json:"field,inline"`
Loaded bool `json:"loaded"` Loaded bool `json:"loaded"`
Metadata map[string]string `json:"metadata"`
} }
func (s *Schema) UnmarshalJSON(b []byte) error { func (s *Schema) UnmarshalJSON(b []byte) error {
...@@ -17,20 +17,12 @@ func (s *Schema) UnmarshalJSON(b []byte) error { ...@@ -17,20 +17,12 @@ func (s *Schema) UnmarshalJSON(b []byte) error {
return errors.Wrapf(err, "error unmarshal json into field") return errors.Wrapf(err, "error unmarshal json into field")
} }
s.Loaded = j.Loaded s.Loaded = j.Loaded
s.Metadata = j.Metadata
if err := s.Field.UnmarshalJSON(b); err != nil { if err := s.Field.UnmarshalJSON(b); err != nil {
return err return err
} }
//if len(j.Field) > 0 {
// if err := s.Field.UnmarshalJSON(j.Field); err != nil {
// return err
// }
// //if err := jsoniter.Unmarshal(j.Field, &s.Field); err != nil {
// // return err
// //}
//}
return nil return nil
} }
...@@ -42,8 +34,8 @@ func (s *Schema) MarshalJSON() ([]byte, error) { ...@@ -42,8 +34,8 @@ func (s *Schema) MarshalJSON() ([]byte, error) {
} }
jsonSch, err := jsoniter.Marshal(jsonSchema{ jsonSch, err := jsoniter.Marshal(jsonSchema{
//Field: b,
Loaded: s.Loaded, Loaded: s.Loaded,
Metadata: s.Metadata,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
......
...@@ -110,10 +110,13 @@ func TestSchema_JSON(t *testing.T) { ...@@ -110,10 +110,13 @@ func TestSchema_JSON(t *testing.T) {
"evaluatedField", field.String(modify.Value("stringField2 + '_' ")), "evaluatedField", field.String(modify.Value("stringField2 + '_' ")),
) )
sch.Loaded = true sch.Loaded = true
sch.Metadata = map[string]string{
"extension": "perxisweb",
}
b, err := json.MarshalIndent(sch, "", " ") b, err := json.MarshalIndent(sch, "", " ")
require.NoError(t, err) require.NoError(t, err)
//fmt.Println(string(b)) fmt.Println(string(b))
res := schema.New() res := schema.New()
err = json.Unmarshal(b, res) err = json.Unmarshal(b, res)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment