communibase-connector-js --- a Node.js connector for the Communibase service
A general-purpose Communibase client for node.js projects. It is primarily a Singleton connector doing REST-calls on the Communibase API using a queuing system. It returns A+ promises for Communibase responses. Behaviour is reflected by a PHP-version that can be found at Github.
npm install --save communibase-connector-js
Make sure environment variable exists with your API-key called COMMUNIBASE_KEY
cbc = require'communibase-connector-js';cbcsearch'Person' firstName: 'Tim' then//do something with peopleCalledTim;
When you need to connect using multiple Communibase API Keys for some reason, you need to 'clone' the connector per key.
cbc = require'communibase-connector-js'clone<your api key here>;
If you need to connect to a specific version of the endpoint, you may want to set a environment variable
COMMUNIBASE_API_URL= COMMUNIBASE_API_HOST=api.communibase.nl node script.js
The following methods exists, all returning a promise for a result.
"selectors" may be provided MongoDb style.
"params" is a key value store for e.g. fields, limit, page and/or sort . See API docs for more details.
includeMetadata will set a metadata-property on the promise, when available.
cbcgetByIdentityType id params: Promise for Entity;cbcgetByIdsentityType id params: Promise for Entity;cbcgetAllentityType params: Promise for Entity;cbcgetIdentityType selector: Promise for id;cbcgetIdsentityType selector params: Promise for id;cbcsearchentityType selector params: Promise for Entity;cbcupdateentityType document: Promise for Entity;cbcdestroyentityType id: Promise for null;cbcundeleteentityType id: Promise for null;
"firstName": "Tim""addresses":"street": "Breestraat"
update-Promise may be rejected if an entity is not considered valid. The Error has one or more of the following properties:
"message": <a simplified error-string>"code": <http response code of API>"errors":"field": "<string>""message": "<string>"
cbccreateReadStreamfileId : Stream;
First, find the _id of both the document and the version you are looking for. To find all available versions of a specific document, use
cbcgetHistoryentityType id : Promise for VersionInformation;
Alternatively, you can search the entire history of documents to look for specific properties. e.g.
//Lookup all versions of any person (even deleted documents) ever with first name Tim.cbchistorySearch'Person' firstName: 'Tim' : Promise for VersionInformation
VersionInformation has the following structure
With an _id and a refId, we can lookup that specific version via the API
cbcgetByIdentityType id params versionId : Promise for version of document;
Aggregate document data via Mongodb pipeline. For more information, see http://docs.mongodb.org/manual/core/aggregation-pipeline/
cbcaggregateentityType aggregationPipeline;//Example:var participantCounters = cbcaggregate'Event'"$match": "_id": "$ObjectId": "52f8fb85fae15e6d0806e7c7""$unwind": "$participants""$group": "_id": "$_id" "participantCount": "$sum": 1;
A DocumentReference is a unified specification to point to some other (sub-)doucment within the administration. A DocumentReference looks like:
rootDocumentId: '524aca8947bd91000600000c'rootDocumentEntityType: 'Person'path:field: 'addresses'objectId: '53440792463cda7161000003'
The contents will be parsed and the requested data will be retrieved.
The connector may cache documents locally. To enable in-memory cache for a certain instance of the connector:
Contact Kingsquare for these values in your particular scenario and use with caution: BEWARE of excessive memory usage!