add commands model

This commit is contained in:
Jay
2019-06-30 15:05:54 +00:00
parent 45c8fc4f0e
commit dd09bfda6e
5 changed files with 112 additions and 9 deletions
+49
View File
@@ -0,0 +1,49 @@
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
}