Slide 45
Slide 45 text
Datastore 関数の Wrap
• 引数には、kind とEntityBehavior
を指定する。
• App Engine ライブラリの
Get, Put を利用する。
// Infrastructure layer -
// infrastructure/persistence/persistence.go
func get(c context.Context, kind string,
dst domain.EntityBehavior) error {
key := datastore.NewKey(c, kind, dst.GetID(),
0, nil)
return datastore.Get(c, key, dst)
}
func put(c context.Context, kind string,
src domain.EntityBehavior) error {
if err := validation.Check(src); err != nil {
return err
}
key :-= datastore.NewKey(c, kind, src.GetID(),
0, nil)
_, err := datastore.Put(c, key, src)
return err
}