Skip to content
This repository has been archived by the owner on Aug 4, 2023. It is now read-only.

Geotab/mg-api-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project has been deprecated. Please use mg-api-js.

mg-api-node

Unofficial nodejs client for the MyGeotab API

Getting Started

$ npm install mg-api-node --save

Usage

var api = new API(userName, password, database);

api.authenticate(function(err, data) {

  if(err){
    console.log('Error', err);
    return;
  }

  api.call('Get', {
    typeName: 'User',
    search: {
      name: data.userName
    }
  }, function(err, data) {

    if(err){
      console.log('Error', err);
      return;
    }

    console.log('User', data);

  });

});

HTTP Timeout

If you need to handle potential slow HTTP requests, you can access request.setTimeout by passing an optional timeout (ms) and timeoutCallback to api.call() and api.multicall():

var api = new API(userName, password, database, server, {ssl: false}, sessionId);

// Timeout (ms) and TimeoutCallback
api.call('Get', {
  typeName: 'User',
  resultsLimit: 1
}, function(err, data) {
  if(err){
    console.log('Error', err);
    return;
  }
  console.log('User', data);
}, 10000, function(){
    console.log('Timeout');
});

// Just Timeout
api.call('Get', {
  typeName: 'User',
  resultsLimit: 1
}, function(err, data) {
  if(err){
    console.log('Error', err);
    return;
  }
  console.log('User', data);
}, 10000);

Session ID

It's also possible to supply session ID and direct server to re-use a session ID. This avoids costly authentication.

var api = new API(userName, password, database, server, options, sessionId);

api.call('Get', {
  typeName: 'User',
  resultsLimit: 1
}, function(err, data) {

  if(err){
    console.log('Error', err);
    return;
  }

  console.log('User', data);

});

Running Tests

$ npm install -g mocha
$ npm install
$ mocha