fix(node): enqueue task for GetNodeCountry only if city or country is empty

This commit is contained in:
Chang lue Tsen 2025-06-12 23:57:06 -04:00
parent b6a2f134bb
commit be7cdcd4a6
2 changed files with 42 additions and 37 deletions

View File

@ -104,6 +104,7 @@ func (l *CreateNodeLogic) CreateNode(req *types.CreateNodeRequest) error {
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseInsertError), "create server error: %v", err)
}
if req.City == "" || req.Country == "" {
// Marshal the task payload
payload, err := json.Marshal(queue.GetNodeCountry{
Protocol: serverInfo.Protocol,
@ -122,5 +123,7 @@ func (l *CreateNodeLogic) CreateNode(req *types.CreateNodeRequest) error {
return errors.Wrap(xerr.NewErrCode(xerr.ERROR), "Failed to enqueue task")
}
l.Infow("[GetNodeCountry]: Enqueue Success", logger.Field("taskID", taskInfo.ID), logger.Field("payload", string(payload)))
}
return nil
}

View File

@ -5,15 +5,15 @@ import (
"encoding/json"
"strings"
"github.com/perfect-panel/server/pkg/device"
"github.com/hibiken/asynq"
"github.com/perfect-panel/server/pkg/device"
queue "github.com/perfect-panel/server/queue/types"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
"github.com/perfect-panel/server/pkg/logger"
"github.com/perfect-panel/server/pkg/tool"
"github.com/perfect-panel/server/pkg/xerr"
queue "github.com/perfect-panel/server/queue/types"
"github.com/pkg/errors"
)
@ -113,6 +113,7 @@ func (l *UpdateNodeLogic) UpdateNode(req *types.UpdateNodeRequest) error {
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseInsertError), "create server error: %v", err)
}
if req.City == "" || req.Country == "" {
// Marshal the task payload
payload, err := json.Marshal(queue.GetNodeCountry{
Protocol: nodeInfo.Protocol,
@ -131,6 +132,7 @@ func (l *UpdateNodeLogic) UpdateNode(req *types.UpdateNodeRequest) error {
return errors.Wrap(xerr.NewErrCode(xerr.ERROR), "Failed to enqueue task")
}
l.Infow("[GetNodeCountry]: Enqueue Success", logger.Field("taskID", taskInfo.ID), logger.Field("payload", string(payload)))
}
l.svcCtx.DeviceManager.Broadcast(device.SubscribeUpdate)
return nil
}