orchestrate-client

orchestrate.io nodejs client

Usage no npm install needed!

<script type="module">
  import orchestrateClient from 'https://cdn.skypack.dev/orchestrate-client';
</script>

README

orchestrate-client

orchestrate.io NodeJS client

installation

npm i orchestrate-client

usage

init

var orchestrate = require('orchestrate-client');
var db = orchestrate(<your token here>);

get all the users in the "users" collection

db.get('users', function(err, header, users) {
});

get the user with key = 1

db.get('users', 1, function(err, header, user) {
});

search & limit

db.get('users', {
    query: 'name:ddo',
    limit: 10
}, function(err, header, users) {
});

create

db.post('users', {
    name: 'ddo',
    age: 25,
    game: 'csgo, dota'
}, function(err, header) {
});

read the api below for more details

api

refs

events

graph

ping

validate your token(API key)

db.ping(function(err, header) {
});

get

get, search, query, list documents

parameters:

  • collection required string
  • key string|number
  • opt object option (limit, query...) check orchestrate.io docs

example:

list

db.get('users', function(err, header, users) {
});

list with option

db.get('users', {
    limit: 5
}, function(err, header, users) {
});

get a document by key

db.get('users', key, function(err, header, user) {
});

search

db.get('users', {
    query: 'game:csgo',
    sort: 'value.name:asc',
    limit: 5
}, function(err, header, users) {
});

post

create document, auto generate new key

parameters:

  • collection required string
  • data object

example:

create

db.post('user', {
    name: 'ddo',
    age: 25,
    game: 'csgo, dota'
}, function(err, header) {
});

create empty document

db.post('user', function(err, header) {
});

put

create/update document

parameters:

  • collection required string
  • key required string|number
  • data object

example:

create/update document

db.put('user', 1, {
    name: 'ddooooooo',
    age: 25,
    game: 'csgo, dota, minecraftttt'
}, function(err, header) {
});

del

delete document

parameters:

  • collection required string
  • key string|number
  • opt object

example:

delete document by key

db.del('user', 1, function(err, header) {
});

delete collection need force=true

db.del('user', {
    force: true
}, function(err, header) {
});

ref.get

parameters:

  • collection required string
  • key required string|number
  • ref string|number
  • opt object

example:

get data of a ref

db.ref.get('user', 1, 'any_ref', function(err, header, data) {
});

list all refs of a document

db.ref.get('user', 1, function(err, header, data) {
});

list refs with option

db.ref.get('user', 1, {
    limit: 5
}, function(err, header, data) {
});

event.get

parameters:

  • collection required string
  • key required string|number
  • type required string
  • opt object

example:

get data of a event

db.event.get('user', 1, 'login', function(err, header, data) {
});

get data of a event

db.event.get('user', 1, 'login', {
    timestamp: 1413215674842,
    ordinal: '05bf1e5dda086000', //must be a ordinal string
    limit: 1
}, function(err, header, data) {
});

event.post

parameters:

  • collection required string
  • key required string|number
  • type required string
  • timestamp number
  • data object

example:

db.event.post('user', 1, 'login', function(err, header) {
});
db.event.post('user', 1, 'login', {
    ip: '3.3.3.3'
}, function(err, header) {
});
db.event.post('user', 1, 'login', 1413215674842, function(err, header) {
});
db.event.post('user', 1, 'login', 1413215674842, {
    login: '4.4.4.4'
}, function(err, header) {
});

event.put

parameters:

  • collection required string
  • key required string|number
  • type required string
  • data object

example:

db.event.put('user', 1, 'login', {
    timestamp: 1413215674842,
    ordinal: '05bf1e5dda086000'
}, {
    ip: '5.5.5.5'
}, function(err, header) {
});

empty data

db.event.put('user', 1, 'login', {
    timestamp: 1413215674842,
    ordinal: '05bf1e5dda086000'
}, function(err, header) {
});

event.del

parameters:

  • collection required string
  • key required string|number
  • type required string
  • opt object

example:

need opt purge=true

db.event.del('user', 1, 'login', {
    timestamp: 1413211094000,
    ordinal: '05bed877f0086000',
    purge: true
}, function(err, header) {
});

graph.get

parameters:

  • collection required string
  • key required string|number
  • kind required string|array relations
  • opt object

example:

db.graph.get('user', 1, 'like', function(err, header, data) {
});
db.graph.get('user', 1, ['like', 'relationship'], function(err, header, data) {
});
db.graph.get('user', 1, ['like', 'relationship'], {
    limit: 5
}, function(err, header, data) {
});

graph.put

parameters:

  • from required object with collection name and key
  • kind required string relation
  • to required object with collection name and key

example:

db.graph.put({
    collection: 'user',
    key: 1
}, 'like', {
    collection: 'user',
    key: 2
}, function(err, header) {
});
db.graph.put({
    from: {
        collection: 'user',
        key: 1
    }, 
    kind: 'like', 
    to: {
        collection: 'user',
        key: 2
    }
}, function(err, header) {
});

graph.del

parameters:

  • from required object with collection name and key
  • kind required string relation
  • to required object with collection name and key
  • opt object

example:

need purge=true

db.graph.del({
    collection: 'user',
    key: 1
}, 'like', {
    collection: 'user',
    key: 2
}, {
    purge: true
}, function(err, header) {
});

note

  • you can pass to all api with 2 params: (option, callback)

example

db.get({
    collection: 'user',
    key: 1,
    opt: {
        query: 'game:csgo',
        sort: 'value.name:asc'
    }
}, function(err, header, data) {
});

db.graph.del({
    from: {
        collection: 'user',
        key: 1
    }, 
    kind: 'like', 
    to: {
        collection: 'user',
        key: 2
    },
    opt: {
        purge: true
    }
}, function(err, header) {
});

changelog

testing

set env.ORCHESTRATE_TOKEN=<your token>

$ npm test