More work on UI

This commit is contained in:
simon987
2019-01-23 19:38:33 -05:00
parent cbd32daf02
commit 1d656099f5
31 changed files with 288 additions and 131 deletions

View File

@@ -1,7 +1,6 @@
package storage
import (
"database/sql"
"encoding/json"
"github.com/Sirupsen/logrus"
"src/task_tracker/config"
@@ -44,12 +43,6 @@ func (database *Database) SetupLoggerHook() {
func (database *Database) GetLogs(since int64, level logrus.Level) *[]LogEntry {
db := database.getDB()
logs := getLogs(since, level, db)
return logs
}
func getLogs(since int64, level logrus.Level, db *sql.DB) *[]LogEntry {
var logs []LogEntry

View File

@@ -102,12 +102,6 @@ func scanProject(row *sql.Row) (*Project, error) {
func (database *Database) GetProjectWithRepoName(repoName string) *Project {
db := database.getDB()
project := getProjectWithRepoName(repoName, db)
return project
}
func getProjectWithRepoName(repoName string, db *sql.DB) *Project {
row := db.QueryRow(`SELECT * FROM project WHERE LOWER(git_repo)=$1`, strings.ToLower(repoName))
project, err := scanProject(row)
@@ -124,10 +118,6 @@ func getProjectWithRepoName(repoName string, db *sql.DB) *Project {
func (database *Database) UpdateProject(project *Project) {
db := database.getDB()
updateProject(project, db)
}
func updateProject(project *Project, db *sql.DB) {
res, err := db.Exec(`UPDATE project
SET (priority, name, clone_url, git_repo, version, motd) = ($1,$2,$3,$4,$5,$6) WHERE id=$7`,
@@ -147,13 +137,6 @@ func updateProject(project *Project, db *sql.DB) {
func (database *Database) GetProjectStats(id int64) *ProjectStats {
db := database.getDB()
stats := getProjectStats(id, db)
return stats
}
func getProjectStats(id int64, db *sql.DB) *ProjectStats {
stats := ProjectStats{}
stats.Project = getProject(id, db)
@@ -169,7 +152,7 @@ func getProjectStats(id int64, db *sql.DB) *ProjectStats {
if err != nil {
logrus.WithError(err).WithFields(logrus.Fields{
"id": id,
}).Warn("???") //todo
}).Trace("Get project stats: No task for this project")
return nil
}
@@ -187,3 +170,36 @@ func getProjectStats(id int64, db *sql.DB) *ProjectStats {
return &stats
}
func (database Database) GetAllProjectsStats() *[]ProjectStats {
var statsList []ProjectStats
db := database.getDB()
rows, err := db.Query(`SELECT
SUM(CASE WHEN status='new' THEN 1 ELSE 0 END) newCount,
SUM(CASE WHEN status='failed' THEN 1 ELSE 0 END) failedCount,
SUM(CASE WHEN status='closed' THEN 1 ELSE 0 END) closedCount,
p.*
FROM task INNER JOIN project p on task.project = p.id
GROUP BY p.id`)
handleErr(err)
for rows.Next() {
stats := ProjectStats{}
p := &Project{}
err := rows.Scan(&stats.NewTaskCount, &stats.FailedTaskCount, &stats.ClosedTaskCount,
&p.Id, &p.Priority, &p.Motd, &p.Name, &p.CloneUrl, &p.GitRepo, &p.Version)
handleErr(err)
stats.Project = p
statsList = append(statsList, stats)
}
logrus.WithFields(logrus.Fields{
"statsList": statsList,
}).Trace("Get all projects stats")
return &statsList
}

View File

@@ -20,12 +20,6 @@ type Task struct {
func (database *Database) SaveTask(task *Task, project int64) error {
db := database.getDB()
taskErr := saveTask(task, project, db)
return taskErr
}
func saveTask(task *Task, project int64, db *sql.DB) error {
res, err := db.Exec(`
INSERT INTO task (project, max_retries, recipe, priority)
@@ -52,12 +46,6 @@ func saveTask(task *Task, project int64, db *sql.DB) error {
func (database *Database) GetTask(worker *Worker) *Task {
db := database.getDB()
task := getTask(worker, db)
return task
}
func getTask(worker *Worker, db *sql.DB) *Task {
row := db.QueryRow(`
UPDATE task
@@ -111,12 +99,6 @@ func getTaskById(id int64, db *sql.DB) *Task {
func (database Database) ReleaseTask(id int64, workerId *uuid.UUID, success bool) bool {
db := database.getDB()
res := releaseTask(workerId, id, success, db)
return res
}
func releaseTask(workerId *uuid.UUID, id int64, success bool, db *sql.DB) bool {
var res sql.Result
var err error
@@ -139,15 +121,9 @@ func releaseTask(workerId *uuid.UUID, id int64, success bool, db *sql.DB) bool {
return rowsAffected == 1
}
func (database *Database) GetTaskFromProject(worker *Worker, project int64) *Task {
func (database *Database) GetTaskFromProject(worker *Worker, projectId int64) *Task {
db := database.getDB()
task := getTaskFromProject(worker, project, db)
return task
}
func getTaskFromProject(worker *Worker, projectId int64, db *sql.DB) *Task {
row := db.QueryRow(`
UPDATE task
@@ -158,7 +134,7 @@ func getTaskFromProject(worker *Worker, projectId int64, db *sql.DB) *Task {
FROM task
INNER JOIN project p on task.project = p.id
WHERE assignee IS NULL AND p.id=$2
ORDER BY p.priority DESC, task.priority DESC
ORDER BY task.priority DESC
LIMIT 1
)
RETURNING id`, worker.Id, projectId)

View File

@@ -21,17 +21,6 @@ type Worker struct {
func (database *Database) SaveWorker(worker *Worker) {
db := database.getDB()
saveWorker(worker, db)
}
func (database *Database) GetWorker(id uuid.UUID) *Worker {
db := database.getDB()
worker := getWorker(id, db)
return worker
}
func saveWorker(worker *Worker, db *sql.DB) {
identityId := getOrCreateIdentity(worker.Identity, db)
@@ -45,7 +34,9 @@ func saveWorker(worker *Worker, db *sql.DB) {
}).Trace("Database.saveWorker INSERT worker")
}
func getWorker(id uuid.UUID, db *sql.DB) *Worker {
func (database *Database) GetWorker(id uuid.UUID) *Worker {
db := database.getDB()
worker := &Worker{}
var identityId int64