fiidmi

Fiidmi API Library for Node.js

npm install fiidmi
12 downloads in the last month

node-fiidmi

Asynchronous Fiidmi API module for Node.js.

Installation

You can install it from the NPM: npm install fiidmi

Usage

Setting up

First you declare an instance of Fiidmi:

var Fiidmi = require('./Fiidmi.js');
var api = new Fiidmi({'hostname':'testapi.fiidmi.fi'});

Single API call

Then API calls can be done like this:

api.servicePolicy({'language':'fi'}).then(function(api) {
    var fi = api.fetch();
    console.log('Data: ' + JSON.stringify(fi, null, 2));
}).fail(function(err) {
    console.error('Error: '+util.inspect(err));
}).done();

..where fi will be:

{
  "policy": "Rekisteriseloste\n-----\n\nRekisterinpitäjä\n---\nSLM Finland Oy\nKauppakaari 15\n04250 Kerava\ntel. +358-9-428 99189\nY-tunnus: 1936684-6\n\nRekisteriasioita hoitava henkilö\n---\nnimi:  SLM Finland Oy / Miia Vento\ntel. +358-9-428 99189\ngsm:  +358 453 259 090\nsposti: miia.vento(at-merkki)slm.fi\n\nRekisterin nimi\n---\nSLM Finland Oy:n asiakasrekisteri\n\nRekisterin pitämisen peruste\n---\nHenkilö on rekisteröitynyt palveluiden asiakkaaksi tai tilannut tuotteita\npalveluiden kautta. Palveluiden käyttö, kuten ravintoloiden tietojen haku,\narvostelu ym. ei edellytä rekisteröitymistä. Hän voi rekisteröidä itselleen\nhaluamansa vapaana oleva käyttäjätunnuksen sekä määritellä tälle haluamansa\nsalasanan, jota tunnusta käytetään täällä määritettyjen tietojen tallennukseen.\nPalveluista tilaaminen rekisteröi tilaajan automaattisesti palvelun käyttäjäksi\nja palvelu muodostaa automaattisesti käyttäjälle käyttäjätunnuksen ja\nsalasanan.\n\nRekisterin käyttötarkoitus\n---\nRekisterin käyttötarkoitus on palveluiden asiakasrekisterin ylläpitäminen sekä\nasiakkaiden tilausten arkistointi ja käsittely. Rekisterin tietoja\nvoidaan käyttää mainontaan ja tiedotuksiin, jos käyttäjä on siihen myöntänyt\nluvan.\n\nAsiakkaalla on oikeus kieltää tietojen julkaiseminen ilmoittamalla siitä\nrekisterin ylläpitäjälle.\n\nRekisterin sisältämät tiedot\n---\nHenkilörekisteri sisältää seuraavia tietoja\n\n- henkilön etu- ja sukunimi\n- sähköpostiosoite\n- postiosoite\n- asiakasnumero\n- puhelinnumero\n- tilausten tiedot\n\nAsiakkaan sijainnin koordinaattien käyttö ja tallennus (sijaintitiedot)\n---\nSijaintitietoja käytetään asiakkaan lähellä olevien palveluiden paikallistamiseen\nja etäisyyden laskentaan. Sijaintitietoja ei tallenneta taustapalveluun.\n\nTietojen luovutus\n---\nTietoja ei luovuteta ulkopuolisille. Rekisteröityneen henkilötiedot hävitetään\nkäyttäjän pyynnöstä.\n"
}

Chaining multiple API calls

Then API calls can chained like this:

api.servicePolicy({'language':'fi'}).servicePolicy({'language':'en'}).then(function(api) {
    var fi = api.fetch();
    var en = api.fetch();
    console.log('--finnish--\n' + fi.policy + '\n--eof--');
    console.log('--english--\n' + en.policy + '\n--eof--');
}).fail(function(err) {
    console.error('Error: '+util.inspect(err));
}).done();

You can read more about these chained promises from nor-extend.

API Reference

Fiidmi.prototype.enableAutoSessionId({bool})

When set to true the client will automatically save the session_id from a call to .accountLogin().

Please be careful not to share instances of Fiidmi connections between different client sessions!

Fiidmi.prototype.setSessionId(session_id)

Saves session_id in the instance.

Please be careful not to share instances of Fiidmi connections between different client sessions!

Fiidmi.prototype.clearSessionId()

Clears session_id from the instance.

Fiidmi.prototype.setApiKey(api_key, secret)

Sets api_key and secret for the instance.

Other Fiidmi calls

The current Fiidmi API we use is version 3.3.

Calls are identical with the API except that '/' and '_' are translated like this:

  • /customer/restaurants/delete -> .customerRestaurantsDelete([opts])
  • /customer/order_history/list -> .customerOrderHistoryList([opts])

Every call will return with a chainable promise of the instance of API itself, where you can use .fetch() to get values from the operations.

So if you call p.servicePolicy() it is same as p.then(function(obj) { return obj.servicePolicy(); }).

You may also use optional leeding $ in the begining of all promise calls if you want to sort out that it's a promise method: p.servicePolicy() is an alias of p.$servicePolicy().

License

It's open source, the MIT License.

npm loves you