Files
chat-deploy/internal/rpc/bot/start.go
kim.dev.6789 b7f8db7d08 复制项目
2026-01-14 22:35:45 +08:00

54 lines
1.3 KiB
Go

package bot
import (
"context"
"net/http"
"time"
"git.imall.cloud/openim/chat/pkg/common/config"
"git.imall.cloud/openim/chat/pkg/common/db/database"
"git.imall.cloud/openim/chat/pkg/common/imapi"
"git.imall.cloud/openim/chat/pkg/protocol/bot"
"github.com/openimsdk/tools/db/mongoutil"
"github.com/openimsdk/tools/discovery"
"google.golang.org/grpc"
)
type Config struct {
RpcConfig config.Bot
RedisConfig config.Redis
MongodbConfig config.Mongo
Discovery config.Discovery
Share config.Share
}
func Start(ctx context.Context, config *Config, client discovery.SvcDiscoveryRegistry, server *grpc.Server) error {
mgocli, err := mongoutil.NewMongoDB(ctx, config.MongodbConfig.Build())
if err != nil {
return err
}
var srv botSvr
srv.database, err = database.NewBotDatabase(mgocli)
if err != nil {
return err
}
srv.timeout = config.RpcConfig.Timeout
srv.httpClient = &http.Client{
Timeout: time.Duration(config.RpcConfig.Timeout) * time.Second,
}
im := imapi.New(config.Share.OpenIM.ApiURL, config.Share.OpenIM.Secret, config.Share.OpenIM.AdminUserID)
srv.imCaller = im
bot.RegisterBotServer(server, &srv)
return nil
}
type botSvr struct {
bot.UnimplementedBotServer
database database.BotDatabase
httpClient *http.Client
timeout int
imCaller imapi.CallerInterface
//Admin *chatClient.AdminClient
}