Base project
This commit is contained in:
commit
922695c23e
9 files changed
+299
No files matched your search
@@ -0,0 +1,54 @@
|
||||
package csv
|
||||
|
||||
import (
|
||||
"encoding/csv"
|
||||
"os"
|
||||
|
||||
"go.uber.org/fx"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type Helper struct {
|
||||
fx.In
|
||||
csvFile *os.File
|
||||
csvWriter *csv.Writer
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
func NewHelper(lc fx.Lifecycle, logger *zap.Logger) *Helper {
|
||||
csvFile, err := os.OpenFile("mqtt-logs.csv", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644)
|
||||
if err != nil {
|
||||
logger.Fatal("error opening csv file", zap.Error(err))
|
||||
}
|
||||
|
||||
csvWriter := csv.NewWriter(csvFile)
|
||||
|
||||
return &Helper{
|
||||
csvFile: csvFile,
|
||||
csvWriter: csvWriter,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Helper) AddEntry(date string, topic string, message string) error {
|
||||
record := []string{date, topic, message}
|
||||
if err := h.csvWriter.Write(record); err != nil {
|
||||
h.logger.Error("error writing to csv file", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
h.csvWriter.Flush()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *Helper) Close() error {
|
||||
h.csvWriter.Flush()
|
||||
|
||||
if err := h.csvFile.Close(); err != nil {
|
||||
h.logger.Error("error closing csv file", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package csv
|
||||
|
||||
import (
|
||||
"encoding/csv"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func InitializeHeader(logger *zap.Logger) {
|
||||
csvFile, err := os.OpenFile("mqtt-logs.csv", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644)
|
||||
if err != nil {
|
||||
logger.Fatal("error opening csv file", zap.Error(err))
|
||||
}
|
||||
defer csvFile.Close()
|
||||
|
||||
r := csv.NewReader(csvFile)
|
||||
w := csv.NewWriter(csvFile)
|
||||
record, err := r.Read()
|
||||
|
||||
if err == io.EOF {
|
||||
w.Write([]string{"Date (UTC)", "Topic", "Message"})
|
||||
w.Flush()
|
||||
} else if err != nil {
|
||||
logger.Fatal("error initializing csv file", zap.Error(err))
|
||||
} else if record[0] == "Date (UTC)" && record[1] == "Topic" && record[2] == "Message" {
|
||||
return
|
||||
} else {
|
||||
logger.Fatal("First row of csv file is not as expected. Please make sure the file is in the correct format.")
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user