Files
mp-qvyun/backend/providers/wechat/provider.go
2024-12-08 01:21:04 +08:00

48 lines
930 B
Go

package wechat
import (
"git.ipao.vip/rogeecn/atom/container"
"git.ipao.vip/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "Wechat"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
type Config struct {
AppID string
AppSecret string
Token string
AesKey string
DevMode bool
}
func Provide(opts ...opt.Option) error {
o := opt.New(opts...)
var config Config
if err := o.UnmarshalConfig(&config); err != nil {
return err
}
return container.Container.Provide(func() (*Client, error) {
httpClient := DefaultClient
if config.DevMode {
httpClient = httpClient.DevMode()
}
return New(
WithAppID(config.AppID),
WithAppSecret(config.AppSecret),
WithAESKey(config.AesKey),
WithToken(config.Token),
WithClient(httpClient),
), nil
}, o.DiOptions()...)
}