Преглед на файлове

修复 setup 没有重启 http 服务器的问题

Signed-off-by: allan716 <[email protected]>
allan716 преди 3 години
родител
ревизия
19b19fdb75
променени са 3 файла, в които са добавени 9 реда и са изтрити 5 реда
  1. 1 1
      internal/backend/base_router.go
  2. 5 2
      internal/backend/controllers/base/controller_base.go
  3. 3 2
      internal/backend/controllers/base/setup.go

+ 1 - 1
internal/backend/base_router.go

@@ -23,7 +23,7 @@ func InitRouter(
 	restartSignal chan interface{},
 ) *v1.ControllerBase {
 
-	cbBase := base.NewControllerBase(log)
+	cbBase := base.NewControllerBase(log, restartSignal)
 	cbV1 := v1.NewControllerBase(log, cronHelper, restartSignal)
 	// --------------------------------------------------
 	// 静态文件服务器

+ 5 - 2
internal/backend/controllers/base/controller_base.go

@@ -1,12 +1,13 @@
 package base
 
 import (
+	"net/http"
+
 	"github.com/allanpk716/ChineseSubFinder/pkg/cache_center"
 	"github.com/allanpk716/ChineseSubFinder/pkg/global_value"
 	"github.com/allanpk716/ChineseSubFinder/pkg/random_auth_key"
 	"github.com/allanpk716/ChineseSubFinder/pkg/settings"
 	"github.com/sirupsen/logrus"
-	"net/http"
 
 	"github.com/allanpk716/ChineseSubFinder/pkg/types/backend"
 
@@ -16,9 +17,10 @@ import (
 
 type ControllerBase struct {
 	fileDownloader *file_downloader.FileDownloader
+	restartSignal  chan interface{}
 }
 
-func NewControllerBase(loggerBase *logrus.Logger) *ControllerBase {
+func NewControllerBase(loggerBase *logrus.Logger, restartSignal chan interface{}) *ControllerBase {
 	return &ControllerBase{
 		fileDownloader: file_downloader.NewFileDownloader(
 			cache_center.NewCacheCenter("local_task_queue", settings.GetSettings(), loggerBase),
@@ -27,6 +29,7 @@ func NewControllerBase(loggerBase *logrus.Logger) *ControllerBase {
 				AESKey16: global_value.AESKey16(),
 				AESIv16:  global_value.AESIv16(),
 			}),
+		restartSignal: restartSignal,
 	}
 }
 

+ 3 - 2
internal/backend/controllers/base/setup.go

@@ -30,7 +30,6 @@ func (cb ControllerBase) SetupHandler(c *gin.Context) {
 	if found == true {
 		// 存在则反馈无需初始化
 		c.JSON(http.StatusNoContent, backend2.ReplyCommon{Message: "already setup"})
-		return
 	} else {
 		// 需要创建用户,因为上述判断了没有用户存在,所以就默认直接新建了
 		err = settings.SetFullNewSettings(&setupInfo.Settings)
@@ -38,6 +37,8 @@ func (cb ControllerBase) SetupHandler(c *gin.Context) {
 			return
 		}
 		c.JSON(http.StatusOK, backend2.ReplyCommon{Message: "ok"})
-		return
 	}
+
+	// 回复完毕后,发送重启 http server 的信号
+	cb.restartSignal <- 1
 }