update
This commit is contained in:
parent
4f0b650ac2
commit
c7032bde6f
@ -119,3 +119,17 @@ func (p *ChannelModel) GetFacebookPageList() (pages []*pubmodel.FacebookPageMode
|
||||
func (p *ChannelModel) GetFacebookPageByID(id string) (page *pubmodel.FacebookPageModel, err error) {
|
||||
return pubmodel.GetFacebookPageByChannelAndID(id, p.ID)
|
||||
}
|
||||
|
||||
// GetFacebookPageTmpl -
|
||||
func (p *ChannelModel) GetFacebookPageTmpl(fbid string) (tmpl string, err error) {
|
||||
if len(fbid) == 0 {
|
||||
return "", errors.New("id is empty")
|
||||
}
|
||||
rt, err := GetFacebookRT(p.ID, fbid)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
tmpl = rt.Tmpl
|
||||
rt = nil
|
||||
return tmpl, nil
|
||||
}
|
||||
|
@ -69,3 +69,21 @@ func GetFacebookRT(channel, facebook string) (rt *ChannelFacebookRT, err error)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Write -
|
||||
func (p *ChannelFacebookRT) Write() (err error) {
|
||||
db := models.GetConn()
|
||||
query := `insert into discord.channel_facebook_rt ("channel", "facebook", "tmpl") values (:channel, :facebook, :tmpl) returning *`
|
||||
row, err := db.NamedQuery(query, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer row.Close()
|
||||
if row.Next() {
|
||||
err = row.StructScan(p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -35,10 +35,10 @@ func GetFacebookPageByID(id string) (page *FacebookPageModel, err error) {
|
||||
db := models.GetConn()
|
||||
query := `select id, lastpost, ctime, mtime from public.facebook_page where id = $1`
|
||||
err = db.Get(page, query, id)
|
||||
if err != nil {
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
return
|
||||
}
|
||||
return
|
||||
return page, nil
|
||||
}
|
||||
|
||||
// GetFacebookPageListByChannel -
|
||||
@ -64,7 +64,7 @@ func GetFacebookPageByChannelAndID(id, channel string) (page *FacebookPageModel,
|
||||
page = &FacebookPageModel{}
|
||||
query := `select id, lastpost, ctime, mtime from public.facebook_page where id = $1 and channel = $2`
|
||||
err = db.Get(page, query, channel)
|
||||
if err != nil {
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
return nil, err
|
||||
}
|
||||
return
|
||||
|
@ -2,6 +2,7 @@ package discord
|
||||
|
||||
import (
|
||||
dsmodel "dorisbot/models/discord"
|
||||
pubmodel "dorisbot/models/public"
|
||||
"log"
|
||||
)
|
||||
|
||||
@ -39,6 +40,35 @@ func addServer(info EvtInfo, name string) string {
|
||||
}
|
||||
|
||||
func addFacebookPage(info EvtInfo, fbid, tmpl string) string {
|
||||
|
||||
ch, err := dsmodel.GetChannelByID(info.Channel)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
var page *pubmodel.FacebookPageModel
|
||||
|
||||
page, err = pubmodel.GetFacebookPageByID(fbid)
|
||||
if err != nil {
|
||||
return "check facebook fail"
|
||||
}
|
||||
if page == nil {
|
||||
// TODO: write facebook page
|
||||
page, err = pubmodel.NewFacebookPage(fbid)
|
||||
if err != nil {
|
||||
return "write data fail"
|
||||
}
|
||||
err = page.Write()
|
||||
if err != nil {
|
||||
return "write data fail"
|
||||
}
|
||||
} else {
|
||||
fbrt, err := ch.GetFacebookPageByID(fbid)
|
||||
if err != nil {
|
||||
return "check data fail"
|
||||
}
|
||||
if fbrt != nil {
|
||||
return "facebook page already linked"
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user