# @danimart1991/node-red-radarr-api

[![Platform](https://img.shields.io/badge/platform-Node--RED-red)](https://nodered.org)
![License](https://img.shields.io/github/license/danimart1991/node-red-nodes.svg)
[![NPM](https://img.shields.io/npm/v/@danimart1991/node-red-radarr-api?logo=npm)](https://www.npmjs.org/package/@danimart1991/node-red-radarr-api)
[![Known Vulnerabilities](https://snyk.io/test/npm/@danimart1991/node-red-radarr-api/badge.svg)](https://snyk.io/test/npm/@danimart1991/node-red-radarr-api)
[![Total Downloads](https://img.shields.io/npm/dt/@danimart1991/node-red-radarr-api.svg)](https://www.npmjs.com/package/@danimart1991/node-red-radarr-api)
![GitHub last commit](https://img.shields.io/github/last-commit/danimart1991/node-red-nodes.svg)
[![Tip Me via PayPal](https://img.shields.io/badge/PayPal-tip%20me-blue.svg?logo=paypal&style=flat)](https://www.paypal.me/danimart1991)
[![Sponsor Me via GitHub](https://img.shields.io/badge/GitHub-sponsor%20me-blue.svg?logo=github&style=flat)](https://github.com/sponsors/danimart1991)

A set of [_Node-RED_](http://nodered.org/) nodes to use with [_Radarr API_](https://radarr.video/).

> **WARNING:** This palette of nodes can leave the _Radarr_ database inconsistent if not handled carefully. Take special care when applying values, for example: _Assigning a non-existent Quality Profile to a Movie._

## Install

As other custom nodes, the recommendation is to install using [the "_Manage Palettes_" option in _Node-RED_](https://nodered.org/docs/user-guide/runtime/adding-nodes).

Indeed, these nodes are available as individual _npm_ package. This repository acts as an overall store for the nodes - and is not intended as a way to install them - unless you really do want some development.

```bash
$ npm install @danimart1991/node-red-radarr-api
```

## Usage

All the nodes have a **Server** parameter that must be configured to work (see **Config** below).

### Config

A **configuration** node that holds the credentials of a _Radarr Server_. All the nodes need this node to work.

Two parameters are required to properly configure this node:

-   **URL**: It's the server's URL used to connect to _Radarr Server_, including _http(s)://_, _port_, and _urlbase_ if required.
-   **API Key**: The _API Key_ generated by _Radarr Server_ under `Settings/General`.

### Nodes

| Entity           | Get | Post | Put | Delete |
| ---------------- | :-: | :--: | :-: | :----: |
| Command          |  ✔  |  ✔   |     |        |
| History          |  ✔  |      |     |        |
| Indexer Test All |  -  |  ✔   |  -  |   -    |
| Movie            |  ✔  |      |     |        |
| Movie Editor     |  -  |  -   |  ✔  |        |
| Movie File       |  ✔  |      |     |        |

### Log

In addition, all the nodes have a **Log** output that offers information on how the execution has worked.

```jsonc
{
    "payload": {
        "source": {
            "id": "0f12103e2251c436",
            "type": "radarr-api-movie-get"
        },
        "level": "Info",
        "message": "2084 Movie/s returned"
    },
    "_msgid": "4c1261a1eb9bfb44"
}
```

| Property              | Type     | Description                                                                 |
| --------------------- | -------- | --------------------------------------------------------------------------- |
| `payload.level`       | _string_ | The log **Level**: _Debug_, _Info_, _Warn_, _Error_, _Critical_ or _Other_. |
| `payload.message`     | _string_ | The log **Message**.                                                        |
| `payload.source.id`   | _string_ | The **Id** of the node that threw the log.                                  |
| `payload.source.type` | _string_ | The **Type** of the node that threw the log.                                |
| `payload.source.name` | _string_ | The **Name**, if set, of the node that threw the log.                       |

## Author

[Daniel Martin Gonzalez](https://danielmartingonzalez.com)

## License

[Apache 2.0](LICENSE)
