npm package: @rimiti/cosium-js-sdk
Description: Cosium Javascript SDK
Author: Dimitri DO BAIRRO
Latest version: 1.2.0

# cosium-js-sdk

[![Build Status](https://travis-ci.org/rimiti/cosium-js-sdk.svg?branch=master)](https://travis-ci.org/rimiti/cosium-js-sdk) [![Coverage Status](https://coveralls.io/repos/github/rimiti/cosium-js-sdk/badge.svg?branch=master)](https://coveralls.io/github/rimiti/cosium-js-sdk?branch=master) [![Issue Count](https://codeclimate.com/github/rimiti/cosium-js-sdk/badges/issue_count.svg)](https://codeclimate.com/github/rimiti/cosium-js-sdk) [![NPM version](https://badge.fury.io/js/cosium-js-sdk.svg)](https://badge.fury.io/js/cosium-js-sdk)


Cosium Javascript SDK

# Install
```
$ npm install @rimiti/cosium-js-sdk --save
```

## Available methods

* ***Getting available timeslots***

```js
import * as sdk from '@rimiti/cosium-js-sdk'

sdk.configure({url: "https://www.example.com", credentials: {username: "username", password: "password"}})
const cosium = sdk.create()

const params = {
  siteCode: "c1",
  startDate: "2017-09-23T12:00:00.000Z",
  endDate: "2017-09-23T13:00:00.000Z"
}

cosium.getAvailableTimeslots(params).then((response) => {
	console.log(response)
})
```
Response body example:

```json
{
  "errorCode": null,
  "errorMessage": null,
  "availableTimeSlots": [
    {"date": "2017-09-23T12:00:00.000+0000", "qualifications": ["CONTACT_LENS", "OPTIC", "HEARING_AID"]},
    {"date": "2017-09-23T12:30:00.000+0000", "qualifications": ["CONTACT_LENS", "OPTIC", "HEARING_AID"]}
  ]
}
```

request parameter for calling the function:

| Name          | description           | Required  |
| ------------- |:---------------------:| ---------:|
| siteCode      | requested center code | true      |
| startDate     | start date            | true      |
| endDate       | end date              | true      |

N.B: The difference between startDate and endDate should be at maximum 20 days

<br/>

* ***Create an appointment***

```js
import * as sdk from '@rimiti/cosium-js-sdk'

sdk.configure({url: "https://www.example.com", credentials: {username: "username", password: "password"}})
const cosium = sdk.create()

const params = {
  "siteCode": "c1",
  "description": "my description",
  "object": "appointement subject",
  "qualification": "HEARING_AID",
  "category": "consultation1",
  "date": "2017-08-24T15:30:25+02:00",
  "customer":
  {
    "firstname": "Jean",
    "lastname": "Dupont",
    "email": "jean.dupont@gmail.com"
  }
}

cosium.createAppointment(params).then((response) => {
	console.log(response)
})
```
Response body example:

```json
{"errorCode": null, "bookingId": "1935472128"}
```

request parameter for calling the function:

| Name                      | description                            | Required  |
| ------------------------- |:--------------------------------------:| ---------:|
| siteCode                  | requested center code                  | true      |
| date                      | date of appointment                    | true      |
| object                    | object of the appointment              | true      |
| category                  | code of appointment category           | true      |
| description               | description of the appointment         | false     |
| timeslotDurationInMinutes | duration in minutes of the slot        | false     |
| customer                  | customer informations                  | true      |
| customer.firstname        | firstname of customer                  | true      |
| customer.lastname         | lastname of customer                   | true      |
| customer.email            | email of customer                      | false     |
| qualification             | desired qualification of the seller    | false     |

<br/>

* ***Delete an appointment***

```js
import * as sdk from '@rimiti/cosium-js-sdk'

sdk.configure({url: "https://www.example.com", credentials: {username: "username", password: "password"}})
const cosium = sdk.create()

const params = {
 	"siteCode": "c1",
  "bookingId": "20"
}

cosium.cancelAppointment(params).then((response) => {
	console.log(response)
})
```
Response body example:

```json
{"errorCode": null}
```

request parameter for calling the function:

| Name          | description                                           | Required  |
| ------------- |:-----------------------------------------------------:| ---------:|
| siteCode      | requested center code                                 | true      |
| bookingId     | unique identifier of the reservation to be deleted    | true      |

## Tests
```js
// Run tests
npm test
```

## License
MIT © [Dimitri DO BAIRRO](https://dimsolution.com)