50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package commands
|
|
|
|
import (
|
|
"dorisbot/models"
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
// CommandsModel -
|
|
type CommandsModel struct {
|
|
CMD string `db:"cmd"`
|
|
Server string `db:"server"`
|
|
RequireManage bool `db:"require_manage"`
|
|
RequireInit bool `db:"require_init"`
|
|
Value string `db:"value"`
|
|
Ctime time.Time `db:"ctime"`
|
|
Mtime time.Time `db:"mtime"`
|
|
}
|
|
|
|
// NewCommand -
|
|
func NewCommand(cmd, server, value string, requireManage, requireInit bool) (c *CommandsModel, err error) {
|
|
if len(cmd) == 0 || len(server) == 0 || len(value) == 0 {
|
|
return nil, errors.New("cmd, server or value is empty")
|
|
}
|
|
|
|
c = &CommandsModel{
|
|
CMD: cmd,
|
|
Server: server,
|
|
Value: value,
|
|
RequireInit: requireInit,
|
|
RequireManage: requireManage,
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// Write -
|
|
func (p *CommandsModel) Write() (err error) {
|
|
db := models.GetConn()
|
|
query := `insert into "commands" ("cmd", "server", "value", "require_init", "require_manage") values
|
|
(:cmd, :server, :value, :require_init, :require_manage) returning *`
|
|
row, err := db.NamedQuery(query, p)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = row.StructScan(p)
|
|
|
|
return
|
|
}
|