38 lines
792 B
Go
38 lines
792 B
Go
package model
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
// KeyCommands - struct
|
|
type KeyCommands struct {
|
|
Key string `db:"key" cc:"key"`
|
|
Group string `db:"group" cc:"group"`
|
|
Message string `db:"message" cc:"message"`
|
|
Ctime time.Time `db:"ctime" cc:"ctime"`
|
|
Mtime time.Time `db:"mtime" cc:"ctime"`
|
|
}
|
|
|
|
// GetGroupKeyCommand -
|
|
func GetGroupKeyCommand(c, g string) (cmd *KeyCommands, err error) {
|
|
if len(c) == 0 {
|
|
return nil, errors.New("command is empty")
|
|
}
|
|
|
|
query := `select c.* from "public"."key_commands" c
|
|
where c."key" = $1
|
|
and (c."group" = '' or c."group" = $2)
|
|
order by c."group" desc
|
|
limit 1`
|
|
row := x.QueryRowx(query, c, g)
|
|
// err = x.Get(&cmd, query, c, g)
|
|
cmd = &KeyCommands{}
|
|
err = row.StructScan(cmd)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return
|
|
}
|