func (rows Rows) ReadRow() (*resource.MetaValues, error) { var metaValues resource.MetaValues columns := rows.Header() for index, column := range columns { metaValue := resource.MetaValue{ Name: column, Value: rows.records[rows.current][index], } if meta := rows.Resource.GetMeta(column); meta != nil { metaValue.Meta = meta } metaValues.Values = append(metaValues.Values, &metaValue) } return &metaValues, nil }
func (res *Resource) finder(result interface{}, metaValues *resource.MetaValues, context *qor.Context) error { var primaryKey string if metaValues == nil { primaryKey = context.ResourceID } else if id := metaValues.Get(res.PrimaryFieldName()); id != nil { primaryKey = utils.ToString(id.Value) } if primaryKey != "" { if metaValues != nil { if destroy := metaValues.Get("_destroy"); destroy != nil { if fmt.Sprintf("%v", destroy.Value) != "0" { context.GetDB().Delete(result, primaryKey) return resource.ErrProcessorSkipLeft } } } return context.GetDB().First(result, primaryKey).Error } return nil }