From 8ecfe7a2fc61caf890e319e7a2f298b71dc90826 Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Wed, 28 Aug 2013 21:48:47 +0200 Subject: Some improvements to the model --- model/dbmodel.go | 2 +- model/mysql/jobs.go | 13 ++++++------- model/mysql/queries.go | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/model/dbmodel.go b/model/dbmodel.go index 76414c7..cc4a6d7 100644 --- a/model/dbmodel.go +++ b/model/dbmodel.go @@ -66,7 +66,7 @@ type DBCon interface { InactiveUsers(olderthan time.Time) []DBID - JobsBefore(t time.Time) []DBID // Get Jobs with next <= t + JobsBefore(t time.Time) []Job // Get Jobs with next <= t } type DBInfo struct { diff --git a/model/mysql/jobs.go b/model/mysql/jobs.go index d5abb1b..2695d50 100644 --- a/model/mysql/jobs.go +++ b/model/mysql/jobs.go @@ -182,21 +182,20 @@ func (j *Job) Delete() error { return err } -func (con *MySQLDBCon) JobsBefore(t time.Time) []model.DBID { +func (con *MySQLDBCon) JobsBefore(t time.Time) (jobs []model.Job) { rows, err := con.stmt[qJobsBefore].Query(t.Unix()) if err != nil { log.Fatalf("Could not get jobs before %s: %s", t, err) // TODO: Really fatal? } - ids := make([]model.DBID, 0) for rows.Next() { - var _id uint64 - if err := rows.Scan(&_id); err != nil { - log.Printf("Could not get all jobs before %s: %s", t, err) + job, err := jobFromSQL(con, rows) + if err != nil { + log.Fatalf("Could not get all jobs before %s: %s", t, err) break } - ids = append(ids, DBID(_id)) + jobs = append(jobs, job) } - return ids + return } diff --git a/model/mysql/queries.go b/model/mysql/queries.go index da2a554..7d7b860 100644 --- a/model/mysql/queries.go +++ b/model/mysql/queries.go @@ -44,7 +44,7 @@ var queries = map[int]string{ qSetContent: "UPDATE `jobs` SET `content` = ? WHERE `id` = ?", qSetNext: "UPDATE `jobs` SET `next` = ? WHERE `id` = ?", qDelJob: "DELETE FROM `jobs` WHERE `id` = ?", - qJobsBefore: "SELECT `id` FROM `jobs` WHERE `next` <= ?", + qJobsBefore: qfragSelJob + "WHERE `next` <= ?", qInsertJob: "INSERT INTO `jobs` (`user`, `subject`, `content`, `next`, `chronos`) VALUES (?, ?, ?, ?, ?)", qInsertUser: "INSERT INTO `users` (`email`, `passwd`, `location`, `active`, `activationcode`, `added`) VALUES (?, ?, ?, ?, ?, ?)", qSetChronos: "UPDATE `jobs` SET `chronos` = ? WHERE `id` = ?", -- cgit v1.2.3-54-g00ecf