fixed changing slices

This commit is contained in:
Sebastian Frank
2019-11-14 14:48:48 +01:00
parent 90ef7bacca
commit 1c73d0736c

View File

@@ -347,7 +347,7 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
}
*/
// apply newM on orgM and record changes for db update
// apply newM on orgM and record changes for db update, only first level for now
changes := bson.M{}
newMStruct := reflect.Indirect(reflect.ValueOf(newM))
orgMStruct := reflect.Indirect(reflect.ValueOf(orgM))
@@ -355,7 +355,9 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc {
field := newMStruct.Field(i)
fieldT := newMStruct.Type().Field(i)
if field.Kind() == reflect.Ptr && !field.IsNil() {
if (field.Kind() == reflect.Ptr || field.Kind() == reflect.Slice) &&
!field.IsNil() {
// apply naming conventions of mgo for changeset
tag := fieldT.Tag.Get("bson")
if tag == "" && !strings.Contains(string(fieldT.Tag), ":") {