@amedia/gaia-client
A [node.js][nodejs] client for the [Gaia][gaia] REST service.
Last updated a year ago by torbs .
Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @amedia/gaia-client 
SYNC missed versions from official npm registry.

Gaia Node Client

A node.js client for the Gaia REST service.

The methods in this client retrieve data from the endpoints in the Gaia REST service. Iow; one do need access to a running Gaia REST service.

Installation

$ npm install gaia-client

Basic usage

Example on getting the property aid.use Object for www.ba.no:

const { GaiaClient } = require('gaia-client');

// use the HeaderManager from your app

const gaiaClient = new GaiaClient('http://varnish-local.api.no/gaia', { headerManager });

gaiaClient
  .getProperty('www.ba.no', 'aid.use')
  .then(result => console.log(result))
  .catch(err => console.error(err));

Take a look at bin/example.js for a simple script which uses all the methods of gaiaClient.

Constructor

This constructs a new client:

const gaiaClient = new GaiaClient(urlRoot, { headerManager });

The constructor take the following parameters:

  • urlRoot is the url to the Gaia server you want to use. This should be the hostname to the server without any paths. This parameter is required.
  • options is a object. The only required property is headerManager

API

All methods returns a promise which resolve to an object.

If an error happens, either if the endpoint returns something else than 200 or the endpoint is not accessible, the Promise will be rejected with an error describing why.

The client has the following methods:

.getProperty(publicationDomain, propertyName) -> Promise

Retrieves the property with the given name from the publication with the given domain.

Example

gaiaClient
  .getProperty('www.tangotidende.no', 'shall.esi.be.used')
  .then(result => console.log(result['shall.esi.be.used']))
  .catch(err => console.error(err));

.getProperties(publicationDomain, propertyNames) -> Promise

propertyNames is a list of names.

Retrieves the properties with the given names from the publication with the given domain. Returns a list of properties.

Example

gaiaClient
  .getProperties('www.tangotidende.no', ['arena.design.version', 'custom.css.url.large'])
  .then(result => console.log(result))
  .catch(err => console.error(err));

.getGlobalProperty(propertyName) -> Promise

Retrieves the global property with the given name.

Example

gaiaClient
  .getGlobalProperty('castor.arena.version')
  .then(result => console.log(result))
  .catch(err => console.error(err));

.getFooter(publication) -> Promise

Retrieves the footer for the publication.

Example

gaiaClient
  .getFooter('www.ba.no')
  .then(result => console.log(result))
  .catch(err => console.error(err));

.getMenu(publication) -> Promise

Retrieves the menu for the publication.

Example

gaiaClient
  .getMenu('www.ba.no')
  .then(result => console.log(result))
  .catch(err => console.error(err));

Tests

$ npm test

Tests are written in Mocha.

Breaking changes version 4

Promise not Bluebird

The promise returned is no longer a Bluebird Promise. This means catch is no longer a filtered catch and the Promise does not support the spread method

Removed site config methods

We have a dedicated site-config module

  • getAllPublications
  • getPublicationById
  • getPublicationByDomain
  • getSiteconfig

New property result format

All property methods return a key value map, not dictionary.

  {
      'aid.use': 'true'
  }

not

[
  {
    value: 'true',
    medusa: false,
    overridable: false,
    name: 'aid.use'
  }
];

New result format for menu

We have switched to the new v3 version of gaia API. The data structure for menu is changed.

Current Tags

  • 4.0.1                                ...           latest (a year ago)

17 Versions

  • 4.0.1                                ...           a year ago
  • 4.0.0                                ...           a year ago
  • 3.3.3                                ...           2 years ago
  • 3.3.2                                ...           2 years ago
  • 3.3.1                                ...           3 years ago
  • 3.3.0                                ...           3 years ago
  • 3.2.0                                ...           3 years ago
  • 3.1.2                                ...           3 years ago
  • 3.1.1                                ...           3 years ago
  • 3.1.0                                ...           3 years ago
  • 3.0.0                                ...           3 years ago
  • 2.3.0                                ...           3 years ago
  • 2.2.0                                ...           3 years ago
  • 2.1.3                                ...           4 years ago
  • 2.1.2                                ...           4 years ago
  • 2.1.1                                ...           4 years ago
  • 2.1.0                                ...           4 years ago

Copyright 2014 - 2017 © taobao.org |