99voices_npm_recordings_client
v1.0.0
Published
A client for the recordings service
Downloads
3
Readme
Recordings Client
This package contains a client for the recordings service. It is build on, and defacto returns an instance of swagger-js. For an in depth Overview of the api of the object returned by this package, see the documentation of swagger-js.
Development
This package is developed within a docker container. Run scripts/run.sh
to obtain
the development environment. Run every yarn operation through the container like
docker exec -it ${container_id} yarn ...
. The container watches for file changes on the
sources and automatically rebuilds the distribution code. Before running yarn publish
be sure to run yarn login
.
Usage
This package contains and returns a singleton. Meaning that you can require the file wherever you want to, and you will always obtain the same client instance. In order for this to work it is vital that the client instance is first initialized. This is an asynchronous process and done like this:
import Config from '99voices_npm_config';
import Client from '99voices_npm_recordings_client';
let config = Config();
const token = "x.y.z"; // should be obtained via the 99voices_npm_authentication_client -> login
console.log(config.get('RECORDINGS_CLIENT_SPEC_URL')) // 'http://tyk:8080/recordings/1.0.0/spec.yaml' => the url the client should fetch the spec from and will be build based on
Client({config,token}).then( client => { ... }).catch( err => { ... })
Initialization
This package uses the constructor of swagger-js.
The constructor Client({config, token, options, purge})
passes the options
on to the
swagger constructor. See swagger-js for
an in depth overview of this object. The purge
attribute can be set to true
which
forces to refetch the spec and rebuild the client, even if there is one already.
After the client is initialized, this package will also patch its basePath for
direct use. It assumes that when the spec is at 'http://tyk:8080/recordings/1.0.0/spec.yaml',
the basePath of the API will be 'http://tyk:8080/recordings/1.0.0/'