1.3.0 • Published 10 years ago

gcloud-datastore-model v1.3.0

Weekly downloads
4
License
MIT
Repository
github
Last release
10 years ago

gcloud-datastore-model

Circle CI

A wrapper around the gcloud-node dataset functions for storing, retrieving and basic querying of Google Cloud Datastore entities.

Features

  • Created and updated dates stored and returned in _metadata properties
  • Assigns an id to the model based on the datastore key
  • Returns promises
  • Raises events

Install

npm install gcloud-datastore-model --save

Usage

const dataset = require('gcloud').datastore.dataset({
  projectId: 'my-project',
  credentials: {}
});

const DatastoreModel = require('gcloud-datastore-model')(dataset);

DatastoreModel.insert(dataset.key(['Kind', 'myid']), {test: 'value'})
  .then(model => console.log);

DatastoreModel.on('inserted', model => console.log);

/* model:
{
  id: 'myid',
  test: 'value',
  _metadata: {
    created: Thu Dec 03 2015 16:04:05 GMT+0000 (GMT)
    uppdated: Thu Dec 03 2015 16:04:05 GMT+0000 (GMT)
  }
}
*/

API

All functions return promises.

  • insert(key, model) - inserts a new model into the datastore. Errors when key already exists.
  • update(key, model) - updates an existing model in the datastore. Errors with an EntityNotFoundError if the key does not exist.
  • get(key) - retrieves a model from the datastore. Errors with an EntityNotFoundError if the key does not exist.
  • getMany(keys) - retrieves multiple models from the datastore. Ignores keys that do not exist.
  • delete(key) - deletes a model from the datastore. Errors with an EntityNotFoundError if the key does not exist.
  • find(query) - executes a datastore query.

Parameters:

  • key - A gcloud-node dataset key object e.g. dataset.key('Person', '1')
  • model - Attributes to persist to datastore e.g. {firstname: 'John', lastname: 'Smith', age: 30}

Events:

  • on('inserted', (model, key) => {}) - emitted when a new model is successfully inserted
  • on('updated', (model, key) => {}) - emitted when an existing model is successfully updated
  • on('deleted', key => {}) - emitted when an existing model is successfully deleted

Development

The tests in this module use the gcd tool to test against a local Google Cloud Datastore. Install Docker compose and run docker-compose up dev from the code directory to start gcd and a file watcher that will automatically run the tests when making code changes.

1.3.0

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.0.1

10 years ago