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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user