Skip to content

pradeep-mishra/google-batch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM   Build Status

google-batch

Sends Batch Requests to Google REST API

(C) Pradeep Mishra [email protected]

google-batch is very easy to use, it seamlessly integrate with googleapis (official node.js sdk) module. so no need to provide all background information like url, query, authorizations.

Warning

  • It is in development mode , so some of apis may not work.
  • Tested on some gmail apis only.
  • Right now only application/json response/request type is supported, so no upload, download kinda things.
  • Not compatible with ES6

Features

  • Simple to use
  • Support googleapis method directly to make batch call
  • Many helper functions to handle batch call smoothly

Example usage

var googleBatch = require('google-batch');
var batch = new googleBatch();

// important, always require googleapis using google-batch require() method.
var google = googleBatch.require('googleapis'); 


// how to use google OAuth instance to provide access token to google-batch
var oauthClient = new google.auth.OAuth2;
oauthClient.setCredentials({
    access_token: "MY_ACCESS_TOKEN"
});
batch.setAuth(oauthClient);

// OR simply pass access_token directly
batch.setAuth("MY_ACCESS_TOKEN");


var gmail = google.gmail({
    version : 'v1'
});

/* 
Do not use oauth object in google service constructer like this
it may bypass patch in a new version of googleapis module

var gmail = google.gmail({
    version : 'v1',
    oauth : oauthClient
});

*/

// now lets make some batch calls
var params1 = {
    googleBatch : true,
    maxResults : 5,
    userId : "me"
};

var params2 = {
    googleBatch : true,
    maxResults : 10,
    userId : "me"
};

/*

notice googleBatch property, this property is required by google-batch 
to identify batch call and prevent it to make the request.

*/

// use add() method to add calls in batch
// yes we can use gogoleapis method directly :)

batch.add(gmail.users.messages.list(params1));
batch.add(gmail.users.messages.list(params2));

batch.exec(function(error, responses, errorDetails){
    console.log(responses);
    // clear batch queue to make new batch call using same instance 
    batch.clear();
});



/* 

In case you are getting a hard time decoding raw (base64) data of gmail body 
you can use this api.


*/





googleBatch.decodeRawData(rawBody);
npm install google-batch --save

About

Sends batch requests to Google REST API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published