IoTool v1 Check

Introduction

The `/android/iotool_v1_check`flow is designed to test user credentials for PostgreSQL database. It demonstrates integration of custom functions within Node-RED, querying a PostgreSQL database, and basic error handling and HTTP response mechanisms.

Flow Overview

alt text

This documentation outlines the key components and functionalities within the IoTool v1 check, focusing on:

  1. Structuring user data and sending it to Node-RED via post request.

  2. Dynamically constructing pgConfig object for user login.

  3. Responding to the HTTP POST request error or success code.

Post Request Handling

Purpose

Initiates the flow by receiving data through a POST request to a specified address. This example shows you how to specify endpoint where data is going to be sent and example configuration/structure of data.

Configuration

Following json file only represents example structure of POST request. Json file contains fields for PostgreSQL username and password. For this example only these two pieces of data are sufficient. Username and password in example are random and you should change those to actual credentials for your PostgreSQL user.

You should also modify url and host and set them to your device.

Example of Post request to send:

{
  "info": {
    "_postman_id": "56ff6dea-0cd1-40b3-80ef-8a7426935ede",
    "name": "IoTool",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "4611963"
  },
  "item": [
    {
      "name": "iotool_v1_check",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "urlencoded",
          "urlencoded": [
            {
              "key": "un",
              "value": "username",
              "type": "text"
            },
            {
              "key": "up",
              "value": "password",
              "type": "text"
            }
          ]
        },
        "url": {
          "raw": "http://dev.sandbox.engineering:1880/android/iotool_v1_check",
          "protocol": "http",
          "host": [
            "test.sandbox.engineering"
          ],
          "port": "1880",
          "path": [
            "android",
            "iotool_v1_check"
          ]
        }
      },
      "response": []
    }
  ]
}

Dynamic Query Configuration

The Function node in Node-RED allows for the incorporation of custom JavaScript code directly within your flows, significantly enhancing Node-RED’s capabilities. In the example provided, an SQL query is constructed dynamically. Values sent via the POST request are accessed within the Function node via the msg object, allowing for flexible query customization based on incoming data.

DB access subflow

This subflow is used for applying generated SQL query to postgreSQL database. This subflow also handles user login, using credentials provided in HTTP POST request.

Error Handling

A Catch node is strategically placed within the flow to monitor for any errors that might occur during database interactions. If an error is detected, it’s captured by the Catch node and relayed back to the originator of the POST request. This feedback mechanism ensures that the sender is informed about the nature of the error, facilitating troubleshooting.

Overview

The example presents a straightforward Node-RED application that leverages JavaScript functions and PostgreSQL queries. While this flow is designed to retrieve timestamps from IoTool, its structure and logic can be adapted to various other data retrieval and processing tasks, demonstrating the versatility of Node-RED in handling diverse types of data.