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

Unified Diff: impl/prod/raw_datastore_type_converter.go

Issue 1253263002: Make rawdatastore API safer for writing filters. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: fix comments Created 5 years, 5 months 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
« no previous file with comments | « impl/prod/raw_datastore.go ('k') | service/info/interface.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: impl/prod/raw_datastore_type_converter.go
diff --git a/impl/prod/raw_datastore_type_converter.go b/impl/prod/raw_datastore_type_converter.go
index 349f5fc1ee5e43f700cfe04cd0dfe141c1260330..778773a506a4d6b69c77500d3d517d6b366cabfc 100644
--- a/impl/prod/raw_datastore_type_converter.go
+++ b/impl/prod/raw_datastore_type_converter.go
@@ -12,13 +12,13 @@ import (
)
type typeFilter struct {
- pls rds.PropertyLoadSaver
+ pm rds.PropertyMap
}
var _ datastore.PropertyLoadSaver = &typeFilter{}
func (tf *typeFilter) Load(props []datastore.Property) error {
- pmap := make(rds.PropertyMap, len(props))
+ tf.pm = make(rds.PropertyMap, len(props))
for _, p := range props {
val := p.Value
switch x := val.(type) {
@@ -39,19 +39,17 @@ func (tf *typeFilter) Load(props []datastore.Property) error {
if err := prop.SetValue(val, is); err != nil {
return err
}
- pmap[p.Name] = append(pmap[p.Name], prop)
+ tf.pm[p.Name] = append(tf.pm[p.Name], prop)
}
- return tf.pls.Load(pmap)
+ return nil
}
func (tf *typeFilter) Save() ([]datastore.Property, error) {
- newProps, err := tf.pls.Save(false)
- if err != nil {
- return nil, err
- }
-
props := []datastore.Property{}
- for name, propList := range newProps {
+ for name, propList := range tf.pm {
+ if len(name) != 0 && name[0] == '$' {
+ continue
+ }
multiple := len(propList) > 1
for _, prop := range propList {
toAdd := datastore.Property{
@@ -74,6 +72,5 @@ func (tf *typeFilter) Save() ([]datastore.Property, error) {
props = append(props, toAdd)
}
}
-
return props, nil
}
« no previous file with comments | « impl/prod/raw_datastore.go ('k') | service/info/interface.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698