gcloud-datastore-model

1.3.0 • Public • Published

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.

Package Sidebar

Install

npm i gcloud-datastore-model

Weekly Downloads

0

Version

1.3.0

License

MIT

Last publish

Collaborators

  • bigwednesdayio
  • brainsiq
  • toboid