From 1e3eaade5a7c7510624fd1ba65ae869675e623f2 Mon Sep 17 00:00:00 2001 From: icey-yu <1186114839@qq.com> Date: Fri, 7 Jun 2024 19:04:04 +0800 Subject: [PATCH] feat:change fcm path --- internal/push/offlinepush/fcm/filepath_test.go | 11 +++++++++++ internal/push/offlinepush/fcm/push.go | 13 +++++++------ internal/push/offlinepush/offlinepusher.go | 4 ++-- internal/push/push.go | 3 ++- pkg/common/cmd/push.go | 1 + pkg/common/cmd/root.go | 5 +++++ 6 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 internal/push/offlinepush/fcm/filepath_test.go diff --git a/internal/push/offlinepush/fcm/filepath_test.go b/internal/push/offlinepush/fcm/filepath_test.go new file mode 100644 index 000000000..ccb760a65 --- /dev/null +++ b/internal/push/offlinepush/fcm/filepath_test.go @@ -0,0 +1,11 @@ +package fcm + +import ( + "fmt" + "path/filepath" + "testing" +) + +func TestFilePath(t *testing.T) { + fmt.Println(filepath.Join("a/b/", "a.json")) +} diff --git a/internal/push/offlinepush/fcm/push.go b/internal/push/offlinepush/fcm/push.go index ec973008e..38a9c94d5 100644 --- a/internal/push/offlinepush/fcm/push.go +++ b/internal/push/offlinepush/fcm/push.go @@ -40,12 +40,13 @@ type Fcm struct { // NewClient initializes a new FCM client using the Firebase Admin SDK. // It requires the FCM service account credentials file located within the project's configuration directory. -func NewClient(pushConf *config.Push, cache cache.ThirdCache) (*Fcm, error) { - projectRoot, err := config.GetProjectRoot() - if err != nil { - return nil, err - } - credentialsFilePath := filepath.Join(projectRoot, "config", pushConf.FCM.ServiceAccount) +func NewClient(pushConf *config.Push, cache cache.ThirdCache, fcmPath string) (*Fcm, error) { + //projectRoot, err := config.GetProjectRoot() + //if err != nil { + // return nil, err + //} + projectRoot := fcmPath + credentialsFilePath := filepath.Join(projectRoot, pushConf.FCM.ServiceAccount) opt := option.WithCredentialsFile(credentialsFilePath) fcmApp, err := firebase.NewApp(context.Background(), nil, opt) if err != nil { diff --git a/internal/push/offlinepush/offlinepusher.go b/internal/push/offlinepush/offlinepusher.go index 8dc8a0bc6..a1e9b8809 100644 --- a/internal/push/offlinepush/offlinepusher.go +++ b/internal/push/offlinepush/offlinepusher.go @@ -36,13 +36,13 @@ type OfflinePusher interface { Push(ctx context.Context, userIDs []string, title, content string, opts *options.Opts) error } -func NewOfflinePusher(pushConf *config.Push, cache cache.ThirdCache) (OfflinePusher, error) { +func NewOfflinePusher(pushConf *config.Push, cache cache.ThirdCache, fcmPath string) (OfflinePusher, error) { var offlinePusher OfflinePusher switch pushConf.Enable { case geTUI: offlinePusher = getui.NewClient(pushConf, cache) case firebase: - return fcm.NewClient(pushConf, cache) + return fcm.NewClient(pushConf, cache, fcmPath) case jPush: offlinePusher = jpush.NewClient(pushConf) default: diff --git a/internal/push/push.go b/internal/push/push.go index c7e245dfe..2ecc6da20 100644 --- a/internal/push/push.go +++ b/internal/push/push.go @@ -29,6 +29,7 @@ type Config struct { WebhooksConfig config.Webhooks LocalCacheConfig config.LocalCache Discovery config.Discovery + FcmPath string } func (p pushServer) PushMsg(ctx context.Context, req *pbpush.PushMsgReq) (*pbpush.PushMsgResp, error) { @@ -50,7 +51,7 @@ func Start(ctx context.Context, config *Config, client discovery.SvcDiscoveryReg return err } cacheModel := redis.NewThirdCache(rdb) - offlinePusher, err := offlinepush.NewOfflinePusher(&config.RpcConfig, cacheModel) + offlinePusher, err := offlinepush.NewOfflinePusher(&config.RpcConfig, cacheModel, config.FcmPath) if err != nil { return err } diff --git a/pkg/common/cmd/push.go b/pkg/common/cmd/push.go index 3e7c4c249..44c3e5826 100644 --- a/pkg/common/cmd/push.go +++ b/pkg/common/cmd/push.go @@ -44,6 +44,7 @@ func NewPushRpcCmd() *PushRpcCmd { LocalCacheConfigFileName: &pushConfig.LocalCacheConfig, DiscoveryConfigFilename: &pushConfig.Discovery, } + ret.pushConfig.FcmPath = ret.FcmPath() ret.RootCmd = NewRootCmd(program.GetProcessName(), WithConfigMap(ret.configMap)) ret.ctx = context.WithValue(context.Background(), "version", config.Version) ret.Command.RunE = func(cmd *cobra.Command, args []string) error { diff --git a/pkg/common/cmd/root.go b/pkg/common/cmd/root.go index 900281367..65031c5ff 100644 --- a/pkg/common/cmd/root.go +++ b/pkg/common/cmd/root.go @@ -31,6 +31,11 @@ type RootCmd struct { prometheusPort int log config.Log index int + fcmPath string +} + +func (r *RootCmd) FcmPath() string { + return r.fcmPath } func (r *RootCmd) Index() int {