OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // +build appengine |
| 6 |
| 7 package context |
| 8 |
| 9 import ( |
| 10 "appengine" |
| 11 "appengine/datastore" |
| 12 |
| 13 "github.com/mjibson/goon" |
| 14 ) |
| 15 |
| 16 type goonWrapper struct{ *goon.Goon } |
| 17 |
| 18 // FromGoon creates a DangerousTransactionerContext backed by an existing |
| 19 // *goon.Goon |
| 20 func FromGoon(c *goon.Goon) DangerousTransactionerContext { |
| 21 return goonWrapper{c} |
| 22 } |
| 23 |
| 24 // GoonFromContext creates a DangerousTransactionerContext backed by the |
| 25 // github.com/mjibson/goon library. |
| 26 func GoonFromContext(c appengine.Context) DangerousTransactionerContext { |
| 27 return goonWrapper{goon.FromContext(c)} |
| 28 } |
| 29 |
| 30 // logger |
| 31 func (g goonWrapper) Debugf(format string, args ...interface{}) { |
| 32 g.Goon.Context.Debugf(format, args...) |
| 33 } |
| 34 |
| 35 func (g goonWrapper) Infof(format string, args ...interface{}) { |
| 36 g.Goon.Context.Infof(format, args...) |
| 37 } |
| 38 |
| 39 func (g goonWrapper) Warningf(format string, args ...interface{}) { |
| 40 g.Goon.Context.Warningf(format, args...) |
| 41 } |
| 42 |
| 43 func (g goonWrapper) Errorf(format string, args ...interface{}) { |
| 44 g.Goon.Context.Errorf(format, args...) |
| 45 } |
| 46 |
| 47 // Kinder |
| 48 func (g goonWrapper) KindNameResolver() goon.KindNameResolver { |
| 49 return g.Goon.KindNameResolver |
| 50 } |
| 51 |
| 52 func (g goonWrapper) SetKindNameResolver(knr goon.KindNameResolver) { |
| 53 g.Goon.KindNameResolver = knr |
| 54 } |
| 55 |
| 56 // NewKeyer |
| 57 func (g goonWrapper) NewKey(kind, stringID string, intID int64, parent *datastor
e.Key) *datastore.Key { |
| 58 return datastore.NewKey(g.Goon.Context, kind, stringID, intID, parent) |
| 59 } |
| 60 |
| 61 func (g goonWrapper) NewKeyObj(obj interface{}) *datastore.Key { |
| 62 return g.Key(obj) |
| 63 } |
| 64 |
| 65 func (g goonWrapper) NewKeyObjError(obj interface{}) (*datastore.Key, error) { |
| 66 return g.KeyError(obj) |
| 67 } |
| 68 |
| 69 // Queryer |
| 70 func (g goonWrapper) Run(q *datastore.Query) Iterator { |
| 71 return g.Run(q) |
| 72 } |
| 73 |
| 74 // Transactioner |
| 75 func (g goonWrapper) RunInTransaction(f func(c Context) error, opts *datastore.T
ransactionOptions) error { |
| 76 return g.Goon.RunInTransaction(func(ig *goon.Goon) error { |
| 77 return f(Context(FromGoon(ig))) |
| 78 }, opts) |
| 79 } |
| 80 |
| 81 // Contexter |
| 82 func (g goonWrapper) Context() appengine.Context { |
| 83 return g.Goon.Context |
| 84 } |
OLD | NEW |