update discord model
This commit is contained in:
parent
49a0876051
commit
1e2026e21a
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/config.yml
|
113
models/discord/discord.go
Normal file
113
models/discord/discord.go
Normal file
@ -0,0 +1,113 @@
|
||||
package discord
|
||||
|
||||
import (
|
||||
"dorisbot/models"
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
// DiscordServerModel -
|
||||
type DiscordServerModel struct {
|
||||
ID string `db:"id"`
|
||||
Name string `db:"name"`
|
||||
Permission int `db:"permission"`
|
||||
Ctime time.Time `db:"ctime"`
|
||||
Mtime time.Time `db:"mtime"`
|
||||
}
|
||||
|
||||
// DiscordChannelModel -
|
||||
type DiscordChannelModel struct {
|
||||
ID string `db:"id"`
|
||||
Server string `db:"server"`
|
||||
EnableCMD bool `db:"enable_cmd"`
|
||||
EnableNotify bool `db:"enable_notify"`
|
||||
Ctime time.Time `db:"ctime"`
|
||||
Mtime time.Time `db:"mtime"`
|
||||
}
|
||||
|
||||
// NewDiscordServer -
|
||||
func NewDiscordServer(id, name string, permission int) (ds *DiscordServerModel, err error) {
|
||||
if len(id) == 0 || len(name) == 0 {
|
||||
return nil, errors.New("id or name empty")
|
||||
}
|
||||
ds = &DiscordServerModel{
|
||||
ID: id,
|
||||
Name: name,
|
||||
Permission: permission,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// GetDiscordServerByID -
|
||||
func GetDiscordServerByID(id string) (ds *DiscordServerModel, err error) {
|
||||
if len(id) == 0 {
|
||||
return nil, errors.New("id is empty")
|
||||
}
|
||||
db := models.GetConn()
|
||||
ds = &DiscordServerModel{}
|
||||
query := `select "id", "name", "permission", "ctime", "mtime" from discord_server where "id" = $1`
|
||||
err = db.Get(ds, query, id)
|
||||
return
|
||||
}
|
||||
|
||||
// Write DiscordServer data to database
|
||||
func (p *DiscordServerModel) Write() error {
|
||||
db := models.GetConn()
|
||||
query := `insert into discord_server ("id", "name", "permission") values (:id, :name, :permission) returning *`
|
||||
row, err := db.NamedQuery(query, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = row.StructScan(p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ChangeName - change discord server name
|
||||
func (p *DiscordServerModel) ChangeName(name string) (err error) {
|
||||
if len(name) == 0 {
|
||||
return errors.New("name is empty")
|
||||
}
|
||||
db := models.GetConn()
|
||||
query := `update discord_server set "name" = $1, "mtime" = now() where "id" = $2`
|
||||
_, err = db.Exec(query, name, p.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
p.Name = name
|
||||
return
|
||||
}
|
||||
|
||||
// GetChannelList -
|
||||
func (p *DiscordServerModel) GetChannelList() (list []*DiscordChannelModel, err error) {
|
||||
db := models.GetConn()
|
||||
query := `select "id", "server", "enable_cmd", "enable_notify", "ctime", "mtime" from discord_channel where "server" = $1`
|
||||
err = db.Select(&list, query, p.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// GetChannel -
|
||||
func (p *DiscordServerModel) GetChannel(id string) (ch *DiscordChannelModel, err error) {
|
||||
if len(id) == 0 {
|
||||
return nil, errors.New("id is empty")
|
||||
}
|
||||
// TODO: not finish
|
||||
return
|
||||
}
|
||||
|
||||
// AddChannel -
|
||||
func (p *DiscordServerModel) AddChannel(id string, enableCMD, enableNotify bool) (err error) {
|
||||
db := models.GetConn()
|
||||
query := `insert into discord_channel ("id", "server", "enable_cmd", "enable_notify", "ctime", "mtime") values
|
||||
($1, $2, $3, $4, now(), now())`
|
||||
_, err = db.Exec(query, id, p.ID, enableCMD, enableNotify)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return
|
||||
}
|
@ -45,3 +45,6 @@ func Ping() error {
|
||||
}
|
||||
return x.Ping()
|
||||
}
|
||||
|
||||
// GetConn database connection
|
||||
func GetConn() *sqlx.DB { return x }
|
||||
|
Loading…
Reference in New Issue
Block a user