#!/bin/bash

// set -e

STATE="$1"
FOLDER="$2"

MQTT_CONFIG_FOLDER="/data/openems/Bridge/Mqtt"

case "$STATE" in

    NeedsArtifactReboot)
        echo "No"
    ;;

    SupportsRollback)
        echo "No"
    ;;

    ArtifactInstall)
        echo "Processing OpenEMS Gateway credentials..."
        echo "Checking files in folder $FOLDER..."

        if [ ! -e "$FOLDER" ]; then
            echo "Directory $FOLDER not found, aborting"
            exit 1
        else
            ls -la $FOLDER
        fi

        # get MQTT Data
        MQTT_BROKER_URL="$(jq -r -e .broker_url <"$JSON_FILE")"
        MQTT_PASS="$(jq -r -e .username <"$JSON_FILE")"
        MQTT_USER="$(jq -r -e .password <"$JSON_FILE")"

        # verify MQTT Data
        if [[ "$MQTT_BROKER_URL" == "null" ]]; then
            echo "MQTT_BROKER_URL not found"
            exit 0
        fi

        if [[ "$MQTT_PASS" == "null" ]]; then
            echo "MQTT_PASS not found"
            exit 0
        fi

        if [[ "$MQTT_USER" == "null" ]]; then
            echo "MQTT_USER not found"
            exit 0
        fi

        # Set Config (ToDo: update config if exists)
        echo "creating Openems Config MqttBridge"

        curl -X POST -H 'Authorization: Basic QWRtaW46YWRtaW4=' \
            -H 'Content-Type: application/json' \
            -d '{"jsonrpc":"2.0","method":"createComponentConfig","params":{
            "factoryPid": Bridge.Mqtt,
            "properties": [{
                "name": "id",
                "value": "MqttBridge"
            },{
                "name": "brokerUrl",
                "value": "'${MQTT_BROKER_URL}'"
            },{
                "name": "password",
                "value": "'${MQTT_PASS}'"
            },{
                "name": "username",
                "value": "'${MQTT_USER}'"
            }
            ]}}' \
            http://localhost:8086/jsonrpc
esac
