nodata
v0.0.2
Published
node odata client
Downloads
3
Readme
node-odata
An odata client module for Node
Installation
npm install nodata
Usage
This module generates endpoints based from odata service urls
var odata = require('nodata');
odata.createServices([{name: 'name', url: 'url1', {name: 'name2', url: 'url2']);
This will return a promise containing the potential generated endpoints for each service queried
odata([{name: 'serviceOne', url: 'url1'}])
.then(function (services) {
// use services
});
If passed a 'authUrl', it will generate a login endpoint which can be used to obtain a cookie for subsequent requests.
services.login('username', 'password', function (error, cookie) {
// I Have a cookie now
});
Each endpoint has a get function
var Oquery = require('nodata').Oquery;
services.someService.someEndpoint
.get(new Oquery(1).expand('someNavProp'), cookie, function (error, data) {
// check for errors and do something with data
});
// Or with a composite key
services.someService.someEndpoint
.get(new Oquery({key1: 1, key2: 2}), cookie, funciton (error, data) {
// do stuff
});
An insert function
services.someService.someEndpoint
.insert(someJsonItem, cookie, function (err, data) {
// check for errors and celebrate success
});
An update function
services.someService.someEndpoint
.update(1, someJsonItem, cookie, function (err, data) {
// check for errors and celebrate success
});
And a delete function
services.someService.someEndpoint
.delete(1, cookie, function (err, data) {
// check for errors and celebrate success
});;
Query Syntax
An Oquery is built from an optional id followed by orderby, filter, expand, skip, top, inlinecount, and select
var Oqeury = require('nodata').Oquery;
var query = new Oquery(1).orderby('id')
.filter('state eq 2').expand('someNavProp')
.skip(5).top(10).select('someNavProp').inlinecount();
endpoint.get(query, cookie, function () {});