> For the complete documentation index, see [llms.txt](https://docs.navigaglobal.com/writer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.navigaglobal.com/writer/master-26/api-reference/writerapi/router.md).

# Router

## postBinary(path, file, onProgress, onLoad, onError, params)

Post a binary file object to the backend

### Parameters

| Param      | Type       | Description                                             |
| ---------- | ---------- | ------------------------------------------------------- |
| path       | `string`   | **Required -**                                          |
| file       | `object`   | **Required -** File object from file input or file drop |
| onProgress | `function` | **Required -** Callback function for progress event     |
| onLoad     | `function` | **Required -** Callback function for onload event       |
| onError    | `function` | **Required -**                                          |
| params     | `function` | **Required -**                                          |

## post(path, parameters)⇒ `Promise.<Response>`

Post data to specified backend endpoint

### Parameters

| Param      | Type     |
| ---------- | -------- |
| path       | `string` |
| parameters | `object` |

## put(path, parameters)⇒ `Promise.<Response>`

Put data to specified backend endpoint

### Parameters

| Param      | Type     |
| ---------- | -------- |
| path       | `string` |
| parameters | `object` |

## get(path, parameters)⇒ `Promise.<Response>`

Get data from specified backend endpoint

### Parameters

| Param      | Type     | Description                                                                       |
| ---------- | -------- | --------------------------------------------------------------------------------- |
| path       | `string` | **Required -**                                                                    |
| parameters | `object` | **Required -** Could contain headers that will be passed along parameters.headers |

### Example

```js
import {api} from 'writer'

api.router.get('/api/binary/url/' + uuid)
    .then((url) => {
        // Handle url
    })
    .catch((error) => {
        console.error(error);
    });
```

## head(path, parameters)⇒ `Promise.<Response>`

Fetch specified backend endpoint using a http HEAD request. This is silent and will not produce any error messages.

### Parameters

| Param      | Type     | Description                                                                       |
| ---------- | -------- | --------------------------------------------------------------------------------- |
| path       | `string` | **Required -**                                                                    |
| parameters | `object` | **Required -** Could contain headers that will be passed along parameters.headers |

### Example

```js
import {api} from 'writer'

api.router.head('/api/binary/url/' + uuid)
    .then((url) => {
        // Handle url
    })
    .catch((error) => {
        console.error(error);
    });
```

## del(path, parameters)⇒ `Promise.<Response>`

Make a DELETE call to a specified backend endpoint

### Parameters

| Param      | Type     | Description                                 |
| ---------- | -------- | ------------------------------------------- |
| path       | `string` | **Required -** Backend endpoint             |
| parameters | `object` | **Required -** Key value request parameters |

## getConceptItem(id, imType)⇒ `*`

Fetch a ConceptItem from the backend

### Parameters

| Param  | Description                          |
| ------ | ------------------------------------ |
| id     | **Required -** The id of the concept |
| imType | **Required -** The x-im/type         |

## getNewsItem(id, imType)⇒ `*`

Fetch a NewsItem from the backend

### Parameters

| Param  | Description                            |
| ------ | -------------------------------------- |
| id     | **Required -** The id of the news item |
| imType | **Required -** The x-im/type           |

## updateConceptItem(uuid, concept)⇒

Updates a Concept Item

**Returns**: A promise with no data

### Parameters

| Param   | Description                                           |
| ------- | ----------------------------------------------------- |
| uuid    | **Required -** The uuid of the Concept Item to update |
| concept | **Required -** The updated XML                        |

## createConceptItem(concept)⇒ `*` | `Promise.<TResult>`

Creates a Concept Item

**Returns**: `*` | `Promise.<TResult>` - containing the resulting UUID

### Parameters

| Param   | Description                          |
| ------- | ------------------------------------ |
| concept | **Required -** The concept to create |

## checkForOKStatus(response)⇒ `*`

Method checks for a status code between 200 and 299 Throws error if otherwise.

Use for example when you want to reject a fetch promise

### Parameters

| Param    |
| -------- |
| response |

### Example

```js
router.authorizedFetch(...)
    .then(response => checkForOKStatus(response))
    .then(response => toJson(response))
    .then(json => ...)
    .catch(error => ...)
```

## ~~toJson()~~

***Deprecated***

Use native response.json() instead

## authorizedFetch(url, params)⇒ `Promise.<*>`

### Parameters

| Param  | Type     |
| ------ | -------- |
| url    |          |
| params | `object` |
