Rename everything to locker/lock
This commit is contained in:
110
model/lock.go
Normal file
110
model/lock.go
Normal file
@ -0,0 +1,110 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"stevenlr.com/locker/utils"
|
||||
)
|
||||
|
||||
func GenerateLockToken() (string, error) {
|
||||
return utils.GenerateRandomString(66)
|
||||
}
|
||||
|
||||
type Lock struct {
|
||||
Id UUID
|
||||
Name string
|
||||
StartTime Time
|
||||
EndTime Time
|
||||
Owner UUID
|
||||
Token string
|
||||
}
|
||||
|
||||
func (self Lock) IsFinished() bool {
|
||||
return MakeTimeNow().Compare(self.EndTime) >= 0
|
||||
}
|
||||
|
||||
func InsertLock(tx *sql.Tx, name string, seconds int, ownerId UUID) error {
|
||||
now := MakeTimeNow()
|
||||
end := Time(time.Time(now).Add(time.Duration(seconds) * time.Second))
|
||||
id := MakeUUID()
|
||||
token, _ := GenerateLockToken()
|
||||
_, err := tx.Exec(`
|
||||
INSERT INTO Lock VALUES ($1, $2, $3, $4, $5, $6)`, id, name, now, end, ownerId, token)
|
||||
return err
|
||||
}
|
||||
|
||||
func GetLocksForUser(db *sql.DB, owner UUID) []Lock {
|
||||
rows, err := db.Query("SELECT Id, Name FROM Lock WHERE Owner=$1", owner)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
locks := []Lock{}
|
||||
for rows.Next() {
|
||||
var t Lock
|
||||
if err := rows.Scan(&t.Id, &t.Name); err == nil {
|
||||
locks = append(locks, t)
|
||||
}
|
||||
}
|
||||
|
||||
return locks
|
||||
}
|
||||
|
||||
func GetLockForUser(db *sql.DB, id UUID, userId UUID) *Lock {
|
||||
row := db.QueryRow("SELECT Id, Name, StartTime, EndTime, Owner, Token FROM Lock WHERE Id=$1 AND Owner=$2", id, userId)
|
||||
|
||||
var t Lock
|
||||
if err := row.Scan(&t.Id, &t.Name, &t.StartTime, &t.EndTime, &t.Owner, &t.Token); err == nil {
|
||||
return &t
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetLockWithToken(db *sql.DB, id UUID, token string) *Lock {
|
||||
row := db.QueryRow("SELECT Id, Name, StartTime, EndTime, Owner, Token FROM Lock WHERE Id=$1 AND Token=$2", id, token)
|
||||
|
||||
var t Lock
|
||||
if err := row.Scan(&t.Id, &t.Name, &t.StartTime, &t.EndTime, &t.Owner, &t.Token); err == nil {
|
||||
return &t
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteLock(db *sql.DB, id UUID, userId UUID) bool {
|
||||
res, err := db.Exec("DELETE FROM Lock WHERE Id=$1 AND Owner=$2", id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
||||
|
||||
func UpdateLockEndTime(db *sql.DB, id UUID, endTime Time, userId UUID) bool {
|
||||
res, err := db.Exec("UPDATE Lock SET EndTime=$1 WHERE Id=$2 AND Owner=$3", endTime, id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
||||
|
||||
func RegenerateLockToken(db *sql.DB, id UUID, userId UUID) bool {
|
||||
newToken, err := GenerateLockToken()
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
res, err := db.Exec("UPDATE Lock SET Token=$1 WHERE Id=$2 AND Owner=$3", newToken, id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
110
model/timer.go
110
model/timer.go
@ -1,110 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"stevenlr.com/timer/utils"
|
||||
)
|
||||
|
||||
func GenerateTimerToken() (string, error) {
|
||||
return utils.GenerateRandomString(66)
|
||||
}
|
||||
|
||||
type Timer struct {
|
||||
Id UUID
|
||||
Name string
|
||||
StartTime Time
|
||||
EndTime Time
|
||||
Owner UUID
|
||||
Token string
|
||||
}
|
||||
|
||||
func (self Timer) IsFinished() bool {
|
||||
return MakeTimeNow().Compare(self.EndTime) >= 0
|
||||
}
|
||||
|
||||
func InsertTimer(tx *sql.Tx, name string, seconds int, ownerId UUID) error {
|
||||
now := MakeTimeNow()
|
||||
end := Time(time.Time(now).Add(time.Duration(seconds) * time.Second))
|
||||
id := MakeUUID()
|
||||
token, _ := GenerateTimerToken()
|
||||
_, err := tx.Exec(`
|
||||
INSERT INTO Timer VALUES ($1, $2, $3, $4, $5, $6)`, id, name, now, end, ownerId, token)
|
||||
return err
|
||||
}
|
||||
|
||||
func GetTimersForUser(db *sql.DB, owner UUID) []Timer {
|
||||
rows, err := db.Query("SELECT Id, Name FROM Timer WHERE Owner=$1", owner)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
timers := []Timer{}
|
||||
for rows.Next() {
|
||||
var t Timer
|
||||
if err := rows.Scan(&t.Id, &t.Name); err == nil {
|
||||
timers = append(timers, t)
|
||||
}
|
||||
}
|
||||
|
||||
return timers
|
||||
}
|
||||
|
||||
func GetTimerForUser(db *sql.DB, id UUID, userId UUID) *Timer {
|
||||
row := db.QueryRow("SELECT Id, Name, StartTime, EndTime, Owner, Token FROM Timer WHERE Id=$1 AND Owner=$2", id, userId)
|
||||
|
||||
var t Timer
|
||||
if err := row.Scan(&t.Id, &t.Name, &t.StartTime, &t.EndTime, &t.Owner, &t.Token); err == nil {
|
||||
return &t
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetTimerWithToken(db *sql.DB, id UUID, token string) *Timer {
|
||||
row := db.QueryRow("SELECT Id, Name, StartTime, EndTime, Owner, Token FROM Timer WHERE Id=$1 AND Token=$2", id, token)
|
||||
|
||||
var t Timer
|
||||
if err := row.Scan(&t.Id, &t.Name, &t.StartTime, &t.EndTime, &t.Owner, &t.Token); err == nil {
|
||||
return &t
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteTimer(db *sql.DB, id UUID, userId UUID) bool {
|
||||
res, err := db.Exec("DELETE FROM Timer WHERE Id=$1 AND Owner=$2", id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
||||
|
||||
func UpdateTimerEndTime(db *sql.DB, id UUID, endTime Time, userId UUID) bool {
|
||||
res, err := db.Exec("UPDATE Timer SET EndTime=$1 WHERE Id=$2 AND Owner=$3", endTime, id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
||||
|
||||
func RegenerateTimerToken(db *sql.DB, id UUID, userId UUID) bool {
|
||||
newToken, err := GenerateTimerToken()
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
res, err := db.Exec("UPDATE Timer SET Token=$1 WHERE Id=$2 AND Owner=$3", newToken, id, userId)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
affected, err := res.RowsAffected()
|
||||
return err == nil && affected == 1
|
||||
}
|
Reference in New Issue
Block a user