Skip to content

wialon/wialonjs-api

Repository files navigation

wialonjs-api

Lightweight and flexible wrapper for Wialon Remote API

wialonjs-api helps you to work with Wialon Hosting and Wialon Local throught Remote API

Installation

Using npm

npm install wialonjs-api

Usage sample

<script scr='dist/wialon-src.js'></script>
<script>
    // create Wialon session instance
    var sess = new W.Session('https://hst-api.wialon.com', {
        eventsTimeout: 5
    });

    // set Remote API 'svc' param
    var svc = 'token/login';
    // set Remote API 'params' param
    var params = {
        token: 'YOUR TOKEN'
    };
    // Execute request
    sess.execute(svc, params, function(data) {
        // callback
        console.log('login succeed');
    });
</script>

Demo

API

Library all library classes use W namespace.

W.Session

The central class of the API. Store all information about session, SID, cache results, can execute avl_event automatically, etc.

Usage sample

    // Wialon server url
    var url = 'https://hst-api.wialon.com';
    // internal session options
    var options = {
        eventsTimeout: 5
    };
    // create Session instance
    var sess = new W.Session(url, options);

    // login
    sess.execute('core/login', {user: 'wialon_test', password: 'test'}, function (data) {
        // login callback
        // sid automatically saved, you can exec next request
    });

Options

eventsTimeout Timeout for auto executing `avl_evts` request. Set `0` to prevent `avl_evts` request sending. Default: 10 (sec).
internalGis Boolean flag to allow to use intertnal GIS service. Default: false.

Methods

Name Description
checkFeature Check if billing service is avaible for given session
execute Execute Remote API request
getBaseUrl Return session base url (e.g. https://hst-api.wialon.com)
getCurrentUser Return currently logged in user
getEvents Get events from server (execute 'avl_evts' request). Run automaticaly if `options.eventsTimeout` != 0.
getFeatures Return avaible billing services for given session
getItem Return item loaded in session by id. Execute `core/update_data_flag` before use this method.
getItems Return items loaded in session filtered by type. Execute `core/update_data_flag` before use this method.
getSid Return session id or null if not logged in
getBaseGisUrl Return GIS service url (e.g. https://render-maps.wialon.com/hst-api.wialon.com)
getLocations Detect location for provided coordinates
getCurrentTime Return current server time
getTimeZone Return server timezone
getTimeZoneOffset Return server timezone offset, in seconds
getDSTOffset Return DST offset for specified timezone, in seconds
getUserTime Convert absolute time to user time
getLocale Return user localization settings
updateLocale Update user localization settings

Events

W.Session fires following events

Name Description
itemChanged item changed (renamed, flags changed etc.)
itemDeleted item deleted from Wialon
positionChanged item position changed
featuresChanged billing services avaible for current session changed
lastMessageChanged item's last message changed (new message obtained)
messageParamsChanged item's messages params changed

W.Request

Helps to performs remote requests

Usage sample

    // create Request instance
    var req = new W.Request('https://hst-api.wialon.com');

    // execute 'core/login' request with 'api' method
    req.api(
        'core/login',
        {user: 'wialon_test', password: 'test'},
        function() {
            // callback
        }
    );

    // execute 'core/login' request with 'send' method
    req.send(
        '/wialon/ajax.html?svc=core/login',
        {user: 'wialon_test', password: 'test'},
        function success() {
            // success callback
        },
        function error() {
            // error callback
        }
    );

Methods

Name Description
api Execute simple Remote API request
send Process request sending

W.Class

Powers the OOP facilities and is used to create library classes.

Usage sample

var MyClass = W.Class.extend({
    initialize: function (greeter) {
        this.greeter = greeter;
        // class constructor
    },

    greet: function (name) {
        alert(this.greeter + ', ' + name)
    }
});

// create instance of MyClass, passing "Hello" to the constructor
var a = new MyClass("Hello");

// call greet method, alerting "Hello, World"
a.greet("World");

W.Util

Various utility functions, used internally.

Contribution

Feel free to pull request into dev branch

Build

We use Jake for building

# global jake install
npm install -g jake
# install dependencies
npm install
# build project
jake

Code Conventions

We use JSHint and JSCS to validate code. Run jake jshint and jake jscs to check

License

The MIT License