Skip to content

Commit 45c081f

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents f4d6255 + 28302d6 commit 45c081f

8 files changed

Lines changed: 54 additions & 59 deletions

File tree

backend/cmd/main.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"bufio"
55
"encoding/binary"
6+
"errors"
67
"flag"
78
"fmt"
89
"log"
@@ -197,7 +198,7 @@ func main() {
197198
Timestamp: packet.Timestamp,
198199
})
199200

200-
if err != nil {
201+
if err != nil && !errors.Is(err, logger.ErrLoggerNotRunning{}) {
201202
fmt.Println("Error pushing record to data logger: ", err)
202203
}
203204

@@ -214,7 +215,7 @@ func main() {
214215
Timestamp: packet.Timestamp,
215216
})
216217

217-
if err != nil {
218+
if err != nil && !errors.Is(err, logger.ErrLoggerNotRunning{}) {
218219
fmt.Println("Error pushing record to info logger: ", err)
219220
}
220221

@@ -236,7 +237,7 @@ func main() {
236237
Timestamp: packet.Timestamp,
237238
})
238239

239-
if err != nil {
240+
if err != nil && !errors.Is(err, logger.ErrLoggerNotRunning{}) {
240241
fmt.Println("Error pushing record to info logger: ", err)
241242
}
242243

@@ -253,7 +254,7 @@ func main() {
253254
Timestamp: packet.Timestamp,
254255
})
255256

256-
if err != nil {
257+
if err != nil && !errors.Is(err, logger.ErrLoggerNotRunning{}) {
257258
fmt.Println("Error pushing record to state logger: ", err)
258259
}
259260

@@ -299,7 +300,7 @@ func main() {
299300
Timestamp: packet.Timestamp(),
300301
})
301302

302-
if err != nil {
303+
if err != nil && !errors.Is(err, logger.ErrLoggerNotRunning{}) {
303304
fmt.Println("Error pushing record to logger: ", err)
304305
}
305306
case logger_topic.EnableName:

backend/pkg/broker/topics/data/update.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func (update *Update) send() error {
114114
}
115115

116116
for _, id := range flaged {
117-
update.pool.Disconnect(id, ws.CloseInternalServerErr, err.Error())
117+
update.pool.Disconnect(id, ws.CloseInternalServerErr, "client disconnected")
118118
delete(update.subscribers, id)
119119
fmt.Printf("podData/update unsubscribed %s\n", uuid.UUID(id).String())
120120
}

backend/pkg/broker/topics/message/update.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ func (update *Update) Push(p abstraction.BrokerPush) error {
6666
}
6767

6868
for _, id := range flagged {
69-
update.pool.Disconnect(id, ws.CloseUnsupportedData, "unsupported topic")
69+
update.pool.Disconnect(id, ws.CloseUnsupportedData, "client disconnected")
7070
delete(update.subscribers, id)
7171
fmt.Printf("message/update unsubscribed %s\n", uuid.UUID(id).String())
7272
}

backend/pkg/logger/data/logger.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
109109
file, ok := sublogger.valueFileSlice[valueName]
110110
if !ok {
111111
filename := path.Join(
112-
"loggerHandler/data",
112+
"logger/data",
113113
fmt.Sprintf("data_%s", loggerHandler.Timestamp.Format(time.RFC3339)),
114114
fmt.Sprintf("%s.csv", valueName),
115115
)
@@ -137,10 +137,9 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
137137

138138
err := writer.Write([]string{
139139
timestamp.Format(time.RFC3339),
140-
val,
141140
dataRecord.From,
142141
dataRecord.To,
143-
dataRecord.Timestamp.Format(time.RFC3339),
142+
val,
144143
})
145144
if err != nil {
146145
writerErr = loggerHandler.ErrWritingFile{

backend/pkg/logger/errors.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ func (err ErrLoggerNotRunning) Error() string {
4040
return fmt.Sprintf("Error %s logger not running at %s", err.Name, err.Timestamp.Format(time.RFC3339))
4141
}
4242

43+
func (err ErrLoggerNotRunning) Is(other error) bool {
44+
_, ok := other.(ErrLoggerNotRunning)
45+
_, okPtr := other.(*ErrLoggerNotRunning)
46+
return ok || okPtr
47+
}
48+
4349
type ErrWrongRecordType struct {
4450
Name abstraction.LoggerName
4551
Timestamp time.Time

backend/pkg/logger/logger.go

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ func (logger Logger) UpdateMessage(_ wsModels.Client, message wsModels.Message)
3838
err := json.Unmarshal(message.Payload, &enable)
3939
if err != nil {
4040
if err != nil {
41-
fmt.Printf(ErrStoppingLogger{
41+
fmt.Println(ErrStoppingLogger{
4242
Name: Name,
4343
Timestamp: time.Now(),
4444
}.Error())
4545
}
46-
fmt.Printf("Error unmarshalling enable message")
46+
fmt.Println("Error unmarshalling enable message")
4747
return
4848
}
4949

5050
if enable {
5151
err := logger.Start()
5252
if err != nil {
53-
fmt.Printf(ErrStartingLogger{
53+
fmt.Println(ErrStartingLogger{
5454
Name: Name,
5555
Timestamp: time.Now(),
5656
}.Error())
@@ -59,7 +59,7 @@ func (logger Logger) UpdateMessage(_ wsModels.Client, message wsModels.Message)
5959
} else {
6060
err := logger.Stop()
6161
if err != nil {
62-
fmt.Printf(ErrStoppingLogger{
62+
fmt.Println(ErrStoppingLogger{
6363
Name: Name,
6464
Timestamp: time.Now(),
6565
}.Error())
@@ -108,7 +108,7 @@ func (logger *Logger) Start() error {
108108
for _, key := range logger.subloggers {
109109
err := key.Start()
110110
if err != nil {
111-
fmt.Printf(ErrStartingLogger{
111+
fmt.Println(ErrStartingLogger{
112112
Name: Name,
113113
Timestamp: time.Now(),
114114
}.Error())
@@ -121,23 +121,12 @@ func (logger *Logger) Start() error {
121121

122122
// PushRecord works as a proxy for the PushRecord method of the subloggers
123123
func (logger *Logger) PushRecord(record abstraction.LoggerRecord) error {
124-
objectiveLogger := record.Name()
125-
126-
for name, logger := range logger.subloggers {
127-
if name == objectiveLogger {
128-
err := logger.PushRecord(record)
129-
if err != nil {
130-
return ErrPushingRecord{
131-
Name: Name,
132-
Timestamp: time.Now(),
133-
Inner: err,
134-
}
135-
}
136-
return nil
137-
}
124+
sublogger, ok := logger.subloggers[record.Name()]
125+
if !ok {
126+
return ErrLoggerNotFound{record.Name()}
138127
}
139128

140-
return ErrLoggerNotFound{objectiveLogger}
129+
return sublogger.PushRecord(record)
141130
}
142131

143132
// PullRecord works as a proxy for the PullRecord method of the subloggers

backend/pkg/logger/messages/logger.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,11 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
122122
defer writer.Flush()
123123

124124
err := writer.Write([]string{
125+
infoRecord.Timestamp.Format(time.RFC3339),
126+
infoRecord.From,
127+
infoRecord.To,
125128
timestamp,
126129
msg,
127-
infoRecord.From, infoRecord.To, infoRecord.Timestamp.Format(time.RFC3339),
128130
})
129131
if err != nil {
130132
writerErr = err

backend/pkg/logger/order/logger.go

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,30 @@ func (sublogger *Logger) Start() error {
5151
return nil
5252
}
5353

54+
filename := path.Join(
55+
"logger/order",
56+
fmt.Sprintf("order_%s", logger.Timestamp.Format(time.RFC3339)),
57+
"order.csv",
58+
)
59+
err := os.MkdirAll(path.Dir(filename), os.ModePerm)
60+
if err != nil {
61+
return logger.ErrCreatingAllDir{
62+
Name: Name,
63+
Timestamp: time.Now(),
64+
Path: filename,
65+
}
66+
}
67+
68+
file, err := os.Create(filename)
69+
if err != nil {
70+
return logger.ErrCreatingFile{
71+
Name: Name,
72+
Timestamp: time.Now(),
73+
Inner: err,
74+
}
75+
}
76+
sublogger.writer = file
77+
5478
fmt.Println("Logger started")
5579
return nil
5680
}
@@ -76,43 +100,17 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
76100
sublogger.fileLock.Lock()
77101
defer sublogger.fileLock.Unlock()
78102

79-
if sublogger.writer == nil {
80-
filename := path.Join(
81-
"logger/order",
82-
fmt.Sprintf("order_%s", logger.Timestamp.Format(time.RFC3339)),
83-
"order.csv",
84-
)
85-
err := os.MkdirAll(path.Dir(filename), os.ModePerm)
86-
if err != nil {
87-
return logger.ErrCreatingAllDir{
88-
Name: Name,
89-
Timestamp: time.Now(),
90-
Path: filename,
91-
}
92-
}
93-
94-
file, err := os.Create(filename)
95-
if err != nil {
96-
return logger.ErrCreatingFile{
97-
Name: Name,
98-
Timestamp: time.Now(),
99-
Inner: err,
100-
}
101-
}
102-
sublogger.writer = file
103-
}
104-
105103
csvWriter := csv.NewWriter(sublogger.writer)
106104
defer csvWriter.Flush()
107105

108106
timestamp := orderRecord.Packet.Timestamp().Format(time.RFC3339)
109107
val := fmt.Sprint(orderRecord.Packet.GetValues())
110108
err := csvWriter.Write([]string{
111109
timestamp,
112-
fmt.Sprint(orderRecord.Packet.Id()),
113-
val,
114110
orderRecord.From,
115111
orderRecord.To,
112+
fmt.Sprint(orderRecord.Packet.Id()),
113+
val,
116114
orderRecord.Timestamp.Format(time.RFC3339),
117115
})
118116
if err != nil {

0 commit comments

Comments
 (0)