From fd3bd2679e70cc92827b2fe60081737310d8be2a Mon Sep 17 00:00:00 2001 From: Jay Chen Date: Sun, 14 Jul 2019 15:04:14 +0800 Subject: [PATCH] update models --- models/discord/channel.go | 52 ++++++++++++++++++++++++++++++++++++++ models/discord/rt_table.go | 31 +++++++++++++++++++++-- 2 files changed, 81 insertions(+), 2 deletions(-) diff --git a/models/discord/channel.go b/models/discord/channel.go index e5664b9..91df603 100644 --- a/models/discord/channel.go +++ b/models/discord/channel.go @@ -2,6 +2,7 @@ package discord import ( "dorisbot/models" + pubmodel "dorisbot/models/public" "errors" "time" ) @@ -30,6 +31,35 @@ func NewChannel(id, server string, enableCMD, enableNotify bool) (ch *ChannelMod return } +// GetChannelByID - +func GetChannelByID(id string) (ch *ChannelModel, err error) { + if len(id) == 0 { + return nil, errors.New("id is empty") + } + ch = &ChannelModel{} + db := models.GetConn() + query := `select id, server, enable_cmd, enable_notify, ctime, mtime where id = $1` + err = db.Get(ch, query, id) + if err != nil { + return nil, err + } + return +} + +// GetChannelListByServer - +func GetChannelListByServer(server string) (list []*ChannelModel, err error) { + if len(server) == 0 { + return nil, errors.New("server is empty") + } + db := models.GetConn() + query := `select id, server, enable_cmd, enable_notify, ctime, mtime where server = $1` + err = db.Select(&list, query, server) + if err != nil { + return nil, err + } + return +} + // Write - func (p *ChannelModel) Write() (err error) { db := models.GetConn() @@ -64,3 +94,25 @@ func (p *ChannelModel) SetCMDState(state bool) (err error) { p.EnableCMD = state return } + +// SetNotifyState - +func (p *ChannelModel) SetNotifyState(state bool) (err error) { + if state == p.EnableNotify { + return nil + } + db := models.GetConn() + query := `update "discord"."channel" set enable_notify = $1, mtime = now() where id = $2` + _, err = db.Exec(query, state, p.ID) + if err != nil { + return err + } + p.EnableNotify = state + return +} + +// GetFacebookPageList - +func (p *ChannelModel) GetFacebookPageList() (pages *pubmodel.FacebookPageModel, err error) { + db := models.GetConn() + _ = db + return +} diff --git a/models/discord/rt_table.go b/models/discord/rt_table.go index 7e79766..56274f3 100644 --- a/models/discord/rt_table.go +++ b/models/discord/rt_table.go @@ -1,6 +1,10 @@ package discord -import "time" +import ( + "dorisbot/models" + "errors" + "time" +) // ChannelFacebookRT - type ChannelFacebookRT struct { @@ -39,6 +43,29 @@ type ChannelTwitchRT struct { } // CreateFacebookRT - -func CreateFacebookRT(channel, facebook string) (rt *ChannelFacebookRT, err error) { +func CreateFacebookRT(channel, facebook, tmpl string) (rt *ChannelFacebookRT, err error) { + if len(channel) == 0 || len(facebook) == 0 { + return nil, errors.New("channel or fbid is empty") + } + rt = &ChannelFacebookRT{ + Channel: channel, + Facebook: facebook, + Tmpl: tmpl, + } + return +} + +// GetFacebookRT - +func GetFacebookRT(channel, facebook string) (rt *ChannelFacebookRT, err error) { + if len(channel) == 0 || len(facebook) == 0 { + return nil, errors.New("channel or fbid is empty") + } + rt = &ChannelFacebookRT{} + db := models.GetConn() + query := `select channel, facebook, tmpl, ctime, mtime where channel = $1 and facebook = $2` + err = db.Get(rt, query, channel, facebook) + if err != nil { + return nil, err + } return }