Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(851)

Unified Diff: service/datastore/multiarg.go

Issue 1516173002: Fix error message from KeyForObj when passing an invalid struct. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: more simplification Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: service/datastore/multiarg.go
diff --git a/service/datastore/multiarg.go b/service/datastore/multiarg.go
index cc1a6726510f6817887f6539a42ba276c780e78b..45e78410e3faef8fee3a9ff758c67ccd93fd6ca0 100644
--- a/service/datastore/multiarg.go
+++ b/service/datastore/multiarg.go
@@ -239,16 +239,13 @@ func multiArgTypeInterface() multiArgType {
return newKeyObjErr(aid, ns, slot.Elem().Interface())
},
getPM: func(slot reflect.Value) (PropertyMap, error) {
- pls := mkPLS(slot.Elem().Interface())
- return pls.Save(true)
+ return mkPLS(slot.Elem().Interface()).Save(true)
},
getMetaPM: func(slot reflect.Value) PropertyMap {
- pls := getMGS(slot.Elem().Interface())
- return pls.GetAllMeta()
+ return getMGS(slot.Elem().Interface()).GetAllMeta()
},
setPM: func(slot reflect.Value, pm PropertyMap) error {
- pls := mkPLS(slot.Elem().Interface())
- return pls.Load(pm)
+ return mkPLS(slot.Elem().Interface()).Load(pm)
},
setKey: func(slot reflect.Value, k *Key) {
setKey(slot.Elem().Interface(), k)
@@ -258,37 +255,37 @@ func multiArgTypeInterface() multiArgType {
func newKeyObjErr(aid, ns string, src interface{}) (*Key, error) {
pls := getMGS(src)
- if key, _ := pls.GetMetaDefault("key", nil).(*Key); key != nil {
+ if key, _ := GetMetaDefault(pls, "key", nil).(*Key); key != nil {
return key, nil
}
// get kind
- kind := pls.GetMetaDefault("kind", "").(string)
+ kind := GetMetaDefault(pls, "kind", "").(string)
if kind == "" {
return nil, fmt.Errorf("unable to extract $kind from %T", src)
}
// get id - allow both to be default for default keys
- sid := pls.GetMetaDefault("id", "").(string)
- iid := pls.GetMetaDefault("id", 0).(int64)
+ sid := GetMetaDefault(pls, "id", "").(string)
+ iid := GetMetaDefault(pls, "id", 0).(int64)
// get parent
- par, _ := pls.GetMetaDefault("parent", nil).(*Key)
+ par, _ := GetMetaDefault(pls, "parent", nil).(*Key)
return NewKey(aid, ns, kind, sid, iid, par), nil
}
func setKey(src interface{}, key *Key) {
pls := getMGS(src)
- if pls.SetMeta("key", key) == ErrMetaFieldUnset {
+ if !pls.SetMeta("key", key) {
lst := key.LastTok()
if lst.StringID != "" {
- _ = pls.SetMeta("id", lst.StringID)
+ pls.SetMeta("id", lst.StringID)
} else {
- _ = pls.SetMeta("id", lst.IntID)
+ pls.SetMeta("id", lst.IntID)
}
- _ = pls.SetMeta("kind", lst.Kind)
- _ = pls.SetMeta("parent", key.Parent())
+ pls.SetMeta("kind", lst.Kind)
+ pls.SetMeta("parent", key.Parent())
}
}
« no previous file with comments | « service/datastore/errors.go ('k') | service/datastore/pls.go » ('j') | service/datastore/pls.go » ('J')

Powered by Google App Engine
This is Rietveld 408576698