Skip to content

Conversation

@stephenplusplus
Copy link
Contributor

Carrying over googleapis/google-cloud-node#2708

Change Overview and Requirements: googleapis/google-cloud-python#4278

This PR:

  • Updates the Datastore proto files
  • Allows setting the BeginTransaction rpc's TransactionOptions.

Examples:

Global-Level Setting

var transaction = datastore.transaction({ readOnly: true });
transaction.run(function(err) {
  transaction.get(key, function() { /*...*/ });
});
var transaction = datastore.transaction({ id: 'previous-id' });
transaction.run(function(err) {
  transaction.save({ key, data });
  transaction.commit(function(err) {});
});

Method-Level Setting

var transaction = datastore.transaction();
transaction.run({ readOnly: true }, function(err) {
  transaction.get(key, function() { /*...*/ });
});
var transaction = datastore.transaction();
transaction.run({ transactionId: 'previous-id' }, function(err) {
  transaction.save({ key, data });
  transaction.commit(function(err) {});
});

Raw Configuration (method level only)

var options = {
  transactionOptions: {
    readWrite: {
      previousTransaction: 'previous-id'
    }
  }
};

var transaction = datastore.run(options, function(err) {
  transaction.save({ key, data });
  transaction.commit(function(err) {});
});

* });
*/
Transaction.prototype.run = function(gaxOptions, callback) {
Transaction.prototype.run = function(options, callback) {

This comment was marked as spam.

@alexander-fenster alexander-fenster merged commit 969ed73 into googleapis:repo-migration Dec 7, 2017
@alexander-fenster alexander-fenster deleted the spp--transaction-options branch December 7, 2017 22:48
alexander-fenster added a commit that referenced this pull request Dec 16, 2017
* Add repo tools config.

* Add cloud repo tools dev dep.

* Add config to cloud repo tools.

* npm run generate-scaffolding

* Generate a samples readme.

* Add .mailmap and regenerate scaffolding.

* New auto-gen layer behind datastore.

* Add JSDoc.

* Add docs command.

* Add lint and prettier commands.

* Add ESLint and prettier

* npm run prettier

* Use GAPIC. (#1)

* Make the linter happy.

* Fix jsdocs and regenerate scaffolding. (#2)

* Support TransactionOptions. (#3)

* setting up CI

* dummy change to trigger circleci build

* prettier, lint

* more coverage for unit tests

* prettier and lint

* sorted new tests in alphabetical order

* test changes

* add GCLOUD_PROJECT to circleci conf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants