mirror of
https://github.com/simon987/task_tracker.git
synced 2025-12-13 23:09:02 +00:00
Initial commit
This commit is contained in:
50
storage/task.go
Normal file
50
storage/task.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type Task struct {
|
||||
Id int64
|
||||
Project int64
|
||||
Assignee uuid.UUID
|
||||
Retries int64
|
||||
MaxRetries int64
|
||||
Status string
|
||||
Recipe string
|
||||
}
|
||||
|
||||
func (database *Database) SaveTask(task *Task) error {
|
||||
|
||||
db := database.getDB()
|
||||
taskErr := saveTask(task, db)
|
||||
err := db.Close()
|
||||
handleErr(err)
|
||||
|
||||
return taskErr
|
||||
}
|
||||
|
||||
func saveTask(task *Task, db *sql.DB) error {
|
||||
|
||||
res, err := db.Exec("INSERT INTO task (project, max_retries, recipe) "+
|
||||
"VALUES ($1,$2,$3)",
|
||||
task.Project, task.MaxRetries, task.Recipe)
|
||||
if err != nil {
|
||||
logrus.WithError(err).WithFields(logrus.Fields{
|
||||
"task": task,
|
||||
}).Warn("Database.saveTask INSERT task ERROR")
|
||||
return err
|
||||
}
|
||||
|
||||
rowsAffected, err := res.RowsAffected()
|
||||
handleErr(err)
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"rowsAffected": rowsAffected,
|
||||
"task": task,
|
||||
}).Trace("Database.saveTask INSERT task")
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user