Skip to content
Snippets Groups Projects
Commit f3f90042 authored by Jonas Leder's avatar Jonas Leder
Browse files

introduce struct for transmitting task

parent 7f9414ca
No related branches found
No related tags found
1 merge request!1WIP: write values to a database
Pipeline #54565 failed
......@@ -10,6 +10,7 @@ import (
"jonasled.dev/jonasled/ems-esp-logger/csv"
"jonasled.dev/jonasled/ems-esp-logger/helper"
"jonasled.dev/jonasled/ems-esp-logger/log"
"jonasled.dev/jonasled/ems-esp-logger/types"
"jonasled.dev/jonasled/ems-esp-logger/zeromq"
)
......@@ -22,25 +23,20 @@ var messagePubHandlerBoiler mqtt.MessageHandler = func(client mqtt.Client, msg m
log.Log.Info("Received new boiler data")
csv.JsonToCsv(string(msg.Payload()))
var jsonData map[string]interface{}
err := json.Unmarshal(msg.Payload(), &jsonData)
if err != nil {
panic(err)
}
currentTime := time.Now().Local().Format("2006-01-02 15:04:05")
jsonData["date"] = currentTime
updatedData, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
if os.Getenv("OUTPUT_FILE_NAME_RAW") != "" {
dumpRawData(string(updatedData), os.Getenv("OUTPUT_FILE_NAME_RAW"))
dumpRawData(string(msg.Payload()), os.Getenv("OUTPUT_FILE_NAME_RAW"))
}
if os.Getenv("OUTPUT_DATABSE") != "" {
zeromq.Pusher.Send(string(updatedData), 0)
task := types.Task{
Date: time.Now().UTC(),
Data: string(msg.Payload()),
Instance: os.Getenv("INSTANCE_NAME"),
}
taskData, err := json.Marshal(task)
if err != nil {
log.Log.Error("Failed encoding new data task as JSON: ", err.Error())
}
zeromq.Pusher.Send(string(taskData), 0)
}
}
......@@ -72,12 +68,27 @@ func Init() {
}
func dumpRawData(data string, filename string) {
var jsonData map[string]interface{}
err := json.Unmarshal([]byte(data), &jsonData)
if err != nil {
panic(err)
}
currentTime := time.Now().Local().Format("2006-01-02 15:04:05")
jsonData["date"] = currentTime
updatedData, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
panic(err)
}
defer file.Close()
file.WriteString(data)
file.WriteString(string(updatedData))
file.WriteString("\n")
}
package types
import "time"
type Task struct {
Date time.Time
Instance string
Data string
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment