mirror of https://github.com/mikkolehtisalo/iw.git
58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
|
package models
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
"github.com/revel/revel"
|
||
|
)
|
||
|
|
||
|
type Lock struct {
|
||
|
Target_id string
|
||
|
Wiki_id string
|
||
|
Username string
|
||
|
Realname string
|
||
|
Modified time.Time
|
||
|
}
|
||
|
|
||
|
// Sets modified time
|
||
|
func (l Lock) Save() {
|
||
|
revel.TRACE.Printf("Lock Save(): %+v", l)
|
||
|
db := get_db()
|
||
|
defer db.Close()
|
||
|
|
||
|
_, err := db.Exec("insert into locks(wiki_id, target_id, username, realname, modified) values ($1, $2, $3, $4, $5)",
|
||
|
l.Wiki_id, l.Target_id, l.Username, l.Realname, time.Now())
|
||
|
|
||
|
if err != nil {
|
||
|
revel.ERROR.Printf("Lock Save(): failed with %+v", err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Deletes by target and wiki id
|
||
|
func (l Lock) Delete() {
|
||
|
revel.TRACE.Printf("Lock Delete(): %+v", l)
|
||
|
db := get_db()
|
||
|
defer db.Close()
|
||
|
|
||
|
_, err := db.Exec("delete from locks where wiki_id=uuid_in($1) and target_id=uuid_in($2)",
|
||
|
l.Wiki_id, l.Target_id)
|
||
|
|
||
|
if err != nil {
|
||
|
revel.ERROR.Printf("Lock Delete(): failed with %+v", err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func GetLock(wiki string, target string) Lock {
|
||
|
revel.TRACE.Printf("GetLock(): target: %+v wiki: %+v", target, wiki)
|
||
|
locks := []Lock{}
|
||
|
lock := Lock{}
|
||
|
db := get_db()
|
||
|
defer db.Close()
|
||
|
|
||
|
db.Select(&locks, "select * from locks where wiki_id=uuid_in($1) and target_id=uuid_in($2)",
|
||
|
wiki, target)
|
||
|
if len(locks)>0 {
|
||
|
lock = locks[0]
|
||
|
}
|
||
|
return lock
|
||
|
}
|