@@ -3,6 +3,8 @@ package plugin_common
33import (
44 "context"
55 "encoding/json"
6+ "github.com/answerdev/answer/internal/base/data"
7+ "github.com/answerdev/answer/internal/repo/search_sync"
68
79 "github.com/answerdev/answer/internal/base/constant"
810 "github.com/answerdev/answer/internal/base/reason"
@@ -23,12 +25,15 @@ type PluginConfigRepo interface {
2325type PluginCommonService struct {
2426 configService * config.ConfigService
2527 pluginConfigRepo PluginConfigRepo
28+ data * data.Data
2629}
2730
2831// NewPluginCommonService new report service
2932func NewPluginCommonService (
3033 pluginConfigRepo PluginConfigRepo ,
31- configService * config.ConfigService ) * PluginCommonService {
34+ configService * config.ConfigService ,
35+ data * data.Data ,
36+ ) * PluginCommonService {
3237
3338 // init plugin status
3439 pluginStatus , err := configService .GetStringValue (context .TODO (), constant .PluginStatus )
@@ -61,6 +66,7 @@ func NewPluginCommonService(
6166 return & PluginCommonService {
6267 configService : configService ,
6368 pluginConfigRepo : pluginConfigRepo ,
69+ data : data ,
6470 }
6571}
6672
@@ -76,5 +82,16 @@ func (ps *PluginCommonService) UpdatePluginStatus(ctx context.Context) (err erro
7682// UpdatePluginConfig update plugin config
7783func (ps * PluginCommonService ) UpdatePluginConfig (ctx context.Context , req * schema.UpdatePluginConfigReq ) (err error ) {
7884 configValue , _ := json .Marshal (req .ConfigFields )
79- return ps .pluginConfigRepo .SavePluginConfig (ctx , req .PluginSlugName , string (configValue ))
85+ err = ps .pluginConfigRepo .SavePluginConfig (ctx , req .PluginSlugName , string (configValue ))
86+ if err != nil {
87+ return err
88+ }
89+
90+ _ = plugin .CallSearch (func (search plugin.Search ) error {
91+ if search .Info ().SlugName == req .PluginSlugName {
92+ search .RegisterSyncer (ctx , search_sync .NewPluginSyncer (ps .data ))
93+ }
94+ return nil
95+ })
96+ return nil
8097}
0 commit comments