datastore package port

Initial port from the appengine/datastore package, adapted to work with the v1 API

Major changes:
* A specific Client interface is used instead of appengine.Context
* The Multiple parameter in properties has been removed, this is now autodetected
* appengine specific types were moved into the datastore package (GeoPoint, BlobKey)
* Direct support for GeoPoints was removed as it's not supported by the v1 API, they're now serialized like every other struct
serialized like every other struct
Possible to get sample JSON of how that looks ?

On Tue, Nov 4, 2014 at 4:27 PM, Burcu Dogan <notifications@github.com>
wrote:

> In datastore/transaction.go:
>
> > +
> > +package datastore
> > +
> > +import (
> > +	"errors"
> > +
> > +	"code.google.com/p/go.net/context"
> > +
> > +	pb "google.golang.org/cloud/internal/datastore"
> > +)
> > +
> > +// ErrConcurrentTransaction is returned when a transaction is rolled back due
> > +// to a conflict with a concurrent transaction.
> > +var ErrConcurrentTransaction = errors.New("datastore: concurrent transaction")
> > +
> > +func runOnce(ctx context.Context, f func(context.Context) error) error {
>
> The API responds with HTTP 409 if there is a conflict while trying to
> commit the transaction. It should be responding with a list of errors in
> JSON as well, we may like to go through that list to see it's explicitly a
> concurrent commit conflict issue.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/GoogleCloudPlatform/gcloud-golang/pull/56/files#r19847658>
> .
>