mirror of
https://github.com/simon987/task_tracker.git
synced 2025-12-14 07:19:02 +00:00
Added i18n, started working on monitoring
This commit is contained in:
44
storage/monitoring.go
Normal file
44
storage/monitoring.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package storage
|
||||
|
||||
type ProjectMonitoringSnapshot struct {
|
||||
NewTaskCount int64
|
||||
FailedTaskCount int64
|
||||
ClosedTaskCount int64
|
||||
WorkerAccessCount int64
|
||||
TimeStamp int64
|
||||
}
|
||||
|
||||
func (database *Database) MakeProjectSnapshots() {
|
||||
|
||||
db := database.getDB()
|
||||
|
||||
_, err := db.Exec(`
|
||||
INSERT INTO project_monitoring_snapshot
|
||||
(project, new_task_count, failed_task_count, closed_task_count, worker_access_count, timestamp)
|
||||
SELECT id,
|
||||
(SELECT COUNT(*) FROM task WHERE task.project = project.id AND status = 1),
|
||||
(SELECT COUNT(*) FROM task WHERE task.project = project.id AND status = 2),
|
||||
closed_task_count,
|
||||
(SELECT COUNT(*) FROM worker_has_access_to_project wa WHERE wa.project = project.id),
|
||||
extract(epoch from now() at time zone 'utc')
|
||||
FROM project`)
|
||||
handleErr(err)
|
||||
}
|
||||
|
||||
func (database *Database) GetMonitoringSnapshots(pid int64, from int64, to int64) (ss *[]ProjectMonitoringSnapshot) {
|
||||
|
||||
db := database.getDB()
|
||||
|
||||
rows, err := db.Query(`SELECT new_task_count, failed_task_count, closed_task_count,
|
||||
worker_access_count, timestamp FROM project_monitoring_snapshot
|
||||
WHERE project=$1 AND timestamp BETWEEN $2 AND $3`, pid, from, to)
|
||||
handleErr(err)
|
||||
|
||||
for rows.Next() {
|
||||
|
||||
s := ProjectMonitoringSnapshot{}
|
||||
err := rows.Scan(&s.NewTaskCount, &s.FailedTaskCount, &s.ClosedTaskCount, &s.WorkerAccessCount, &s.TimeStamp)
|
||||
handleErr(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user