mirror of https://github.com/chaitin/PandaWiki.git
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package pg
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/chaitin/panda-wiki/domain"
|
|
"github.com/chaitin/panda-wiki/log"
|
|
"github.com/chaitin/panda-wiki/store/pg"
|
|
)
|
|
|
|
type WechatRepository struct {
|
|
db *pg.DB
|
|
logger *log.Logger
|
|
}
|
|
|
|
func NewWechatRepository(db *pg.DB, logger *log.Logger) *WechatRepository {
|
|
return &WechatRepository{db: db, logger: logger.WithModule("repo.pg.wechat")}
|
|
}
|
|
|
|
func (r *WechatRepository) GetWechatStatic(ctx context.Context, kbID string, appType domain.AppType) (*domain.WechatStatic, error) {
|
|
var wechatStatic domain.WechatStatic
|
|
if err := r.db.WithContext(ctx).Model(&domain.App{}).
|
|
Where("kb_id = ? AND type = ?", kbID, appType).
|
|
Joins("join knowledge_bases kb on kb.id = kb_id ").
|
|
Select("apps.settings ->>'icon' as image_path", "kb.access_settings ->>'base_url' as base_url").
|
|
Find(&wechatStatic).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &wechatStatic, nil
|
|
}
|
|
|
|
func (r *WechatRepository) GetWechatBaseURL(ctx context.Context, kbID string) (string, error) {
|
|
var baseUrl string
|
|
if err := r.db.WithContext(ctx).Model(&domain.KnowledgeBase{}).
|
|
Where("id = ?", kbID).
|
|
Select("access_settings ->>'base_url'").
|
|
First(&baseUrl).Error; err != nil {
|
|
return "", err
|
|
}
|
|
return baseUrl, nil
|
|
}
|