package utils

import (
	"github.com/astaxie/beego/config"
	"github.com/astaxie/beego/logs"
	"github.com/kinisky564477/wechat/component"
)

// Component 微信开放平台
var Component *component.ComponentClient

// ComponentInit 第三方初始化
func ComponentInit() {
	// 初始化第三方

	// 读取配置文件
	conf, err := config.NewConfig("ini", GetAppRoot()+"/conf/wechat.conf")
	if err != nil {
		logs.Error("读取微信配置文件失败")
	}
	var cert = map[string]string{
		"component_appid": conf.String("wechat::appid"),
		"aeskey":          conf.String("wechat::aeskey"),
	}
	Component = component.NewComponentClient(cert)
}

// RefreshComponentTicket ticket
func RefreshComponentTicket(ticket string) {
	Component.RefreshTicket(ticket)
}

// WechatInit 微信初始化
func WechatInit(cert map[string]string, reflashToken func(map[string]string)) *component.WxClient {
	var wechatClient *component.WxClient

	wechatClient = component.NewWxClient(
		cert,
		Component.GetToken,
		Component.GetCertificate,
		reflashToken,
	)

	return wechatClient
}

// AppendWxClient 增加微信实例
func AppendWxClient(wx *component.WxClient) {
	Component.AppendWxClient(wx)
}