From 720b8752937c3ece802ce767aaf8ea7662798006 Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Wed, 28 Aug 2013 15:38:28 +0200 Subject: Improved database model --- model/dbmodel.go | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/model/dbmodel.go b/model/dbmodel.go index 9dd2c91..76414c7 100644 --- a/model/dbmodel.go +++ b/model/dbmodel.go @@ -23,9 +23,16 @@ type User interface { PWHash() []byte SetPWHash([]byte) error - AddJob() Job + AddJob(subject string, content []byte, chron chronos.MultiChronos, next time.Time) (Job, error) Jobs() []Job JobByID(DBID) (Job, error) + CountJobs() int + + Active() bool + SetActive(bool) error + + ActivationCode() string + SetActivationCode(string) error Delete() error } @@ -40,8 +47,8 @@ type Job interface { Content() []byte SetContent([]byte) error - Chronos() []chronos.Chronos - SetChronos([]chronos.Chronos) error + Chronos() chronos.MultiChronos + SetChronos(chronos.MultiChronos) error Next() time.Time SetNext(time.Time) error @@ -55,10 +62,11 @@ type DBCon interface { UserByID(DBID) (User, error) UserByMail(string) (User, error) - LastAccess() time.Time - SetLastAccess(time.Time) error + AddUser(email string, pwhash []byte, location *time.Location, active bool, acCode string) (User, error) + + InactiveUsers(olderthan time.Time) []DBID - JobsBetween(a, b time.Time) ([]Job, error) + JobsBefore(t time.Time) []DBID // Get Jobs with next <= t } type DBInfo struct { @@ -81,3 +89,11 @@ func GetDBInfo(name string) (DBInfo, bool) { dbinfo, ok := dbinfos[name] return dbinfo, ok } + +func AllDatabases() []string { + names := make([]string, 0, len(dbinfos)) + for name := range dbinfos { + names = append(names, name) + } + return names +} -- cgit v1.2.3-54-g00ecf