npm install nodatanode-odata
==========
An odata client module for Node

``bash`
npm install nodata
This module generates endpoints based from odata service urls
`javascript
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
`javascript
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.
`javascript
services.login('username', 'password', function (error, cookie) {
// I Have a cookie now
});
`
Each endpoint has a get function
`javascript
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
`javascript
services.someService.someEndpoint
.insert(someJsonItem, cookie, function (err, data) {
// check for errors and celebrate success
});
`
An update function
`javascript
services.someService.someEndpoint
.update(1, someJsonItem, cookie, function (err, data) {
// check for errors and celebrate success
});
`
And a delete function
`javascript
services.someService.someEndpoint
.delete(1, cookie, function (err, data) {
// check for errors and celebrate success
});;
`
javascript
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 () {});
``