add ig model
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user