Index: go/src/infra/gae/epservice/example/service_cas.go |
diff --git a/go/src/infra/gae/epservice/example/service_cas.go b/go/src/infra/gae/epservice/example/service_cas.go |
index f01804ec488218dcbfcd47732a3885d8319f929f..4c2d8214f9cf0d303b2e3ac198d835edffc1ab3b 100644 |
--- a/go/src/infra/gae/epservice/example/service_cas.go |
+++ b/go/src/infra/gae/epservice/example/service_cas.go |
@@ -6,8 +6,8 @@ package example |
import ( |
"golang.org/x/net/context" |
- "infra/gae/libs/wrapper" |
- "infra/gae/libs/wrapper/gae" |
+ "infra/gae/libs/gae" |
+ "infra/gae/libs/gae/prod" |
"github.com/GoogleCloudPlatform/go-endpoints/endpoints" |
) |
@@ -21,18 +21,20 @@ type CASReq struct { |
} |
// CAS does an atomic compare-and-swap on a counter. |
-func (Example) CAS(c endpoints.Context, r *CASReq) (err error) { |
+func (Example) CAS(c context.Context, r *CASReq) (err error) { |
success := false |
- ds := wrapper.GetDS(gae.Use(context.Background(), c)) |
- err = ds.RunInTransaction(func(context.Context) error { |
- ctr := &Counter{ID: r.Name} |
- if err := ds.Get(ctr); err != nil { |
+ c = prod.Use(c) |
+ err = gae.GetRDS(c).RunInTransaction(func(c context.Context) error { |
+ rds := gae.GetRDS(c) |
+ key := rds.NewKey("Counter", r.Name, 0, nil) |
+ ctr := &Counter{} |
+ if err := rds.Get(key, ctr); err != nil { |
return err |
} |
if ctr.Val == r.OldVal { |
success = true |
ctr.Val = r.NewVal |
- _, err := ds.Put(ctr) |
+ _, err := rds.Put(key, ctr) |
return err |
} |
success = false |