# Infomaker im-oc-client #

This is a wrapper class for requests towards Infomaker Open Content. Exposes
Open Content query builder, response and request helper functionality.

## Usage ##

### QueryBuilder

Builds a valid Open Content (SOLR) query. For usage/documentation, please see
tests `/tests/querybuilder.test.js`.

### OpenContentClient

Wraps functionality and requests towards Open Content REST API. For
usage/documentation, please see tests `tests/opencontentclient.test.js`.

### QueryResponseHelper

Exposes helper functions for using search response from Open Content /search
requests. For usage/documentation, please see tests `tests/queryresponsehelper.test.js`.

## Develop the project ##

### Run the unit tests  ###

```
docker-compose up
```

### Rebuild after updates to package.json ###

```
docker-compose down
docker-compose build
docker-compose up
```

## Releases ##

### Release a new version

To bump version in `package.json` and create a new commit. This should be done
as the first commit for every release- or hotfix-branch.
Use the following npm scripts:

#### Major Release

Run `npm run release:major` to create a new major version.
E.g `4.1.1 -> 5.0.0`

#### Minor Release

Run `npm run release:minor` to create a new minor version.
E.g `4.1.1 -> 4.2.0`

#### Patch Release

Run `npm run release:patch` to create a new patch release.
E.g `4.1.1 -> 4.1.2`