mirror of https://github.com/dirtbags/moth.git
It's all working (the Redis backend, that is)
This commit is contained in:
parent
5d00d8df55
commit
5c833b6024
|
@ -2,7 +2,9 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"github.com/go-redis/redis/v8"
|
"github.com/go-redis/redis/v8"
|
||||||
|
@ -165,7 +167,7 @@ func (s *RedisState) PointsLog() award.List {
|
||||||
return make(award.List, 0)
|
return make(award.List, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
point_log := make(award.List, len(scores))
|
var point_log award.List
|
||||||
|
|
||||||
for _, item := range scores {
|
for _, item := range scores {
|
||||||
point_entry := award.T{}
|
point_entry := award.T{}
|
||||||
|
@ -177,8 +179,10 @@ func (s *RedisState) PointsLog() award.List {
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Do nothing
|
// Do nothing
|
||||||
|
fmt.Println("Encountered an error while extracting fields from ", point_string)
|
||||||
} else if n != 3 {
|
} else if n != 3 {
|
||||||
// Wrong number of fields, do nothing
|
// Wrong number of fields, do nothing
|
||||||
|
fmt.Println("Point entry is malformed, ", point_string)
|
||||||
} else {
|
} else {
|
||||||
point_log = append(point_log, point_entry)
|
point_log = append(point_log, point_entry)
|
||||||
}
|
}
|
||||||
|
@ -212,37 +216,8 @@ func (s *RedisState) AwardPoints(teamID, category string, points int) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// LogEvent writes to the event log
|
// LogEvent writes to the event log
|
||||||
func (s *RedisState) LogEvent(event, participantID, teamID, cat string, points int, extra ...string) {
|
func (s *RedisState) LogEvent(event string, participantID string, teamID string, cat string, points int, extra ...string) {
|
||||||
/*
|
extra_data, _ := json.Marshal(extra)
|
||||||
new_event := RedisEventEntry {
|
|
||||||
When: time.Now().Unix(),
|
|
||||||
Event: event,
|
|
||||||
ParticipantID: participantID,
|
|
||||||
TeamID: teamID,
|
|
||||||
Category: cat,
|
|
||||||
Points: points,
|
|
||||||
Extra: extra,
|
|
||||||
}
|
|
||||||
|
|
||||||
message, _ := new_event.MarshalJSON()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
redis_args := redis.XAddArgs {
|
|
||||||
Stream: s.redisKeyEventLog(),
|
|
||||||
Values: map[string]interface{}{
|
|
||||||
"When": time.Now().Unix(),
|
|
||||||
"Event": event,
|
|
||||||
"ParticipantID": participantID,
|
|
||||||
"TeamID": teamID,
|
|
||||||
"Category": cat,
|
|
||||||
"Points": points,
|
|
||||||
"Extra": extra,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
s.redis_client.XAdd(s.ctx, &redis_args)
|
|
||||||
*/
|
|
||||||
|
|
||||||
s.eventStream <-
|
s.eventStream <-
|
||||||
map[string]interface{}{
|
map[string]interface{}{
|
||||||
|
@ -251,8 +226,8 @@ func (s *RedisState) LogEvent(event, participantID, teamID, cat string, points i
|
||||||
"ParticipantID": participantID,
|
"ParticipantID": participantID,
|
||||||
"TeamID": teamID,
|
"TeamID": teamID,
|
||||||
"Category": cat,
|
"Category": cat,
|
||||||
"Points": points,
|
"Points": strconv.Itoa(points),
|
||||||
"Extra": extra,
|
"Extra": extra_data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,7 +237,12 @@ func (s *RedisState) writeEvent(event map[string]interface{}) {
|
||||||
Values: event,
|
Values: event,
|
||||||
}
|
}
|
||||||
|
|
||||||
s.redis_client.XAdd(s.ctx, &redis_args)
|
_, err := s.redis_client.XAdd(s.ctx, &redis_args).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error when processing event stream")
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
version: "3.4"
|
||||||
|
services:
|
||||||
|
moth:
|
||||||
|
image: moth:test
|
||||||
|
volumes:
|
||||||
|
- C:\Users\Donaldson8\Desktop\dev\moth-test:/mothballs:ro
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
command: ["-state-engine", "redis"]
|
||||||
|
environment:
|
||||||
|
REDIS_URL: redis:6379
|
||||||
|
REDIS_INSTANCE_ID: foobar
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
redis:
|
||||||
|
image: redis:6.2-alpine
|
||||||
|
|
Loading…
Reference in New Issue