Add Current endpoint
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
68b4166c8d
commit
4e75f15ab3
41
main.go
41
main.go
|
@ -13,8 +13,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Event struct {
|
type Event struct {
|
||||||
name string
|
Name string
|
||||||
eventTimestamp time.Time
|
EventTimestamp time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
var eventlog string
|
var eventlog string
|
||||||
|
@ -35,8 +35,8 @@ func main() {
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
e := Event{
|
e := Event{
|
||||||
name: "Nothing",
|
Name: "Nothing",
|
||||||
eventTimestamp: time.Now(),
|
EventTimestamp: time.Now(),
|
||||||
}
|
}
|
||||||
addEvent(e)
|
addEvent(e)
|
||||||
}()
|
}()
|
||||||
|
@ -71,6 +71,13 @@ func runHttpServer() {
|
||||||
w.Write([]byte(line))
|
w.Write([]byte(line))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
http.HandleFunc("/current", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
res, err := json.Marshal(currentState)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal().Err(err).Msg("Cant Marshal Current State")
|
||||||
|
}
|
||||||
|
w.Write(res)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@ -117,8 +124,8 @@ func runHttpServer() {
|
||||||
name := r.FormValue("name")
|
name := r.FormValue("name")
|
||||||
|
|
||||||
e := Event{
|
e := Event{
|
||||||
name: name,
|
Name: name,
|
||||||
eventTimestamp: eventTimestamp,
|
EventTimestamp: eventTimestamp,
|
||||||
}
|
}
|
||||||
|
|
||||||
addEvent(e)
|
addEvent(e)
|
||||||
|
@ -147,8 +154,8 @@ func readStateFromFile() {
|
||||||
log.Fatal().Err(err).Str("TimeString", details[0]).Msg("Cant parse time from eventlog")
|
log.Fatal().Err(err).Str("TimeString", details[0]).Msg("Cant parse time from eventlog")
|
||||||
}
|
}
|
||||||
e := Event{
|
e := Event{
|
||||||
name: details[1],
|
Name: details[1],
|
||||||
eventTimestamp: t,
|
EventTimestamp: t,
|
||||||
}
|
}
|
||||||
|
|
||||||
handleEvent(e)
|
handleEvent(e)
|
||||||
|
@ -158,7 +165,7 @@ func readStateFromFile() {
|
||||||
|
|
||||||
func saveEvent(e Event) {
|
func saveEvent(e Event) {
|
||||||
var line string
|
var line string
|
||||||
line = e.eventTimestamp.Format(time.RFC3339)+";"+e.name+"\r\n"
|
line = e.EventTimestamp.Format(time.RFC3339)+";"+e.Name +"\r\n"
|
||||||
f, err := os.OpenFile(eventlog, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
|
f, err := os.OpenFile(eventlog, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -180,17 +187,17 @@ func addEvent(e Event) {
|
||||||
|
|
||||||
func handleEvent(e Event) {
|
func handleEvent(e Event) {
|
||||||
log.Debug().Msg("Handle New Event")
|
log.Debug().Msg("Handle New Event")
|
||||||
if lastEvent.name != "" {
|
if lastEvent.Name != "" {
|
||||||
duration := e.eventTimestamp.Sub(lastEvent.eventTimestamp)
|
duration := e.EventTimestamp.Sub(lastEvent.EventTimestamp)
|
||||||
log.Debug().Int64("Duration", int64(duration.Seconds())).Str("LastEventName", lastEvent.name).Msg("Calculatet Duration for last event")
|
log.Debug().Int64("Duration", int64(duration.Seconds())).Str("LastEventName", lastEvent.Name).Msg("Calculatet Duration for last event")
|
||||||
//Add to state
|
//Add to state
|
||||||
currentDuration := currentState[lastEvent.name][lastEvent.eventTimestamp.Format("02.01.06")]
|
currentDuration := currentState[lastEvent.Name][lastEvent.EventTimestamp.Format("02.01.06")]
|
||||||
if len(currentState[lastEvent.name]) == 0 {
|
if len(currentState[lastEvent.Name]) == 0 {
|
||||||
currentState[lastEvent.name] = make(map[string]int64)
|
currentState[lastEvent.Name] = make(map[string]int64)
|
||||||
}
|
}
|
||||||
currentDuration += int64(duration.Seconds())
|
currentDuration += int64(duration.Seconds())
|
||||||
log.Debug().Int64("Day Duration", currentDuration).Str("Day", lastEvent.eventTimestamp.Format("02.01.06")).Str("typ", lastEvent.name).Msg("Add Duration to Day")
|
log.Debug().Int64("Day Duration", currentDuration).Str("Day", lastEvent.EventTimestamp.Format("02.01.06")).Str("typ", lastEvent.Name).Msg("Add Duration to Day")
|
||||||
currentState[lastEvent.name][lastEvent.eventTimestamp.Format("02.01.06")] = currentDuration
|
currentState[lastEvent.Name][lastEvent.EventTimestamp.Format("02.01.06")] = currentDuration
|
||||||
}
|
}
|
||||||
|
|
||||||
lastEvent = e
|
lastEvent = e
|
||||||
|
|
Loading…
Reference in New Issue