add ig model

This commit is contained in:
Jay
2019-08-26 09:45:17 +00:00
parent b6aba699c9
commit f4ceb9ac21
4 changed files with 236 additions and 1 deletions
+32
View File
@@ -7,6 +7,8 @@ import (
"time"
)
var nerr = errors.New
// ChannelModel -
type ChannelModel struct {
ID string `db:"id"`
@@ -129,6 +131,9 @@ func (p *ChannelModel) GetFacebookPageTmpl(fbid string) (tmpl string, err error)
if err != nil {
return "", err
}
if rt == nil {
return "", errors.New("rt not found")
}
tmpl = rt.Tmpl
rt = nil
return tmpl, nil
@@ -138,3 +143,30 @@ func (p *ChannelModel) GetFacebookPageTmpl(fbid string) (tmpl string, err error)
func (p *ChannelModel) DeleteFacebookPage(fbid string) (err error) {
return DeleteFacebookRT(p.ID, fbid)
}
// GetInstagramByID -
func (p *ChannelModel) GetInstagramByID(id string) (ig *pubmodel.InstagramModel, err error) {
return pubmodel.GetInstagramByChannelAndID(id, p.ID)
}
// GetInstagramTmpl -
func (p *ChannelModel) GetInstagramTmpl(id string) (tmpl string, err error) {
if len(id) == 0 {
return "", nerr("id is empty")
}
rt, err := GetInstagramRT(p.ID, id)
if err != nil {
return "", err
}
if rt == nil {
return "", nerr("rt not found")
}
tmpl = rt.Tmpl
rt = nil
return tmpl, nil
}
// DeleteInstagram -
func (p *ChannelModel) DeleteInstagram(id string) (err error) {
return DeleteInstagramRT(p.ID, id)
}
+78
View File
@@ -1,6 +1,7 @@
package discord
import (
"database/sql"
"dorisbot/models"
"errors"
"time"
@@ -103,3 +104,80 @@ func DeleteFacebookRT(channel, facebook string) (err error) {
}
return
}
// CreateInstagramRT -
func CreateInstagramRT(channel, instagram, tmpl string) (rt *ChannelInstagramRT, err error) {
if len(channel) == 0 || len(instagram) == 0 {
return nil, errors.New("channel or ig is empty")
}
rt = &ChannelInstagramRT{
Channel: channel,
Instagram: instagram,
Tmpl: tmpl,
}
return rt, nil
}
// Write -
func (p *ChannelInstagramRT) Write() (err error) {
db := models.GetConn()
query := `insert into "discord"."channel_instagram_rt"
("channel", "instagram", "tmpl") values (:channel, :instagram, :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
}
// GetInstagramRT -
func GetInstagramRT(channel, instagram string) (rt *ChannelInstagramRT, err error) {
if len(channel) == 0 || len(instagram) == 0 {
return nil, errors.New("channel or ig is empty")
}
db := models.GetConn()
query := `
select
"channel", "instagram", "ctime", "mtime"
from "discord"."channel_instagram_rt"
where
"channel" = $1
and "instagram" = $2
`
rt = &ChannelInstagramRT{}
err = db.Get(rt, query, channel, instagram)
if err != nil {
if err == sql.ErrNoRows {
return nil, nil
}
return nil, err
}
return
}
// DeleteInstagramRT -
func DeleteInstagramRT(channel, instagram string) (err error) {
if len(channel) == 0 || len(instagram) == 0 {
return errors.New("channel or ig is empty")
}
db := models.GetConn()
query := `
delete from "discord"."channel_instagram_rt"
where
"channel" = $1
and "instagram" = $2
`
_, err = db.Exec(query, channel, instagram)
if err != nil {
return err
}
return
}