Skip to content

OTooleMichael/nvm-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvm-api

New Voice Media Node Wrapper - for stats

npm install new-voice-media --save

Usage

Create a global connection to the service using your private keys. Authentication is then handled internally.

	const CONFIG = {
		ACCOUNT_KEY:'ACCOUNT',
		CLIENT_SECRET:'SECRET',
		CLOUD:'cloud11',
		throttling:500 // optional (default: 400ms) reduce the speed of calls centrall from the NVM connection
	};

	const nmv = new NVM(CONFIG);
	// nmv object from which to run reports
	module.exports = nvm;
	// this object will maintain authentication cetrally so other moduels can create reports easily

Streaming

Streaming data from the a report can be achieved. This avoids buffering anything into memory.

	let report = nmv.newReport({
		report:"INBOUND",
		start:'2017-06-01',
		end:'2017-06-04'
	})
	.on('data',function(row){
		console.log(row);
	})
	.on('error',function(err){
		console.log(err)
	})
	.on('end',function(){
		console.log("ALL done");
		console.log(this.results);
	})
	.stream();

Stream Method can be piped directly

	let transform = new Transform({
		writableObjectMode:true,
		transform:(row)=>{return this.push(JSON.stringify(row)+'\n')}
	};)
	let newFile = fs.createWriteStream('./file.txt')
	let report = nmv.newReport({
		report:"INBOUND",
		start:'2017-06-01',
		end:'2017-06-04'
	})
	.stream().pipe(transform).pipe(newFile);

Promises and Callback

If data is not streamed it will be buffered all into memory before the end ofthe call. This should be ok for smaller requests.

	let report = nmv.newReport({
		report:"OUTBOUND",
		start:'2017-06-01',
		end:'2017-06-04'
	})
	.limit(10000)
	.run(function(err,results){
		if(err) return console.log(err);
		console.log(results.rows);
	});

About

New Voice Media Node Wrapper - for stats

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published