setup.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package base
  2. import (
  3. "net/http"
  4. "github.com/allanpk716/ChineseSubFinder/internal/types/backend"
  5. "github.com/allanpk716/ChineseSubFinder/pkg/settings"
  6. "github.com/gin-gonic/gin"
  7. )
  8. func (cb ControllerBase) SetupHandler(c *gin.Context) {
  9. var err error
  10. defer func() {
  11. // 统一的异常处理
  12. cb.ErrorProcess(c, "SetupHandler", err)
  13. }()
  14. setupInfo := backend.ReqSetupInfo{}
  15. err = c.ShouldBindJSON(&setupInfo)
  16. if err != nil {
  17. return
  18. }
  19. // 只有当用户不存在的时候才能够执行初始化操作
  20. found := false
  21. if settings.GetSettings().UserInfo.Username != "" && settings.GetSettings().UserInfo.Password != "" {
  22. found = true
  23. }
  24. if found == true {
  25. // 存在则反馈无需初始化
  26. c.JSON(http.StatusNoContent, backend.ReplyCommon{Message: "already setup"})
  27. return
  28. } else {
  29. // 需要创建用户,因为上述判断了没有用户存在,所以就默认直接新建了
  30. err = settings.SetFullNewSettings(&setupInfo.Settings)
  31. if err != nil {
  32. return
  33. }
  34. c.JSON(http.StatusOK, backend.ReplyCommon{Message: "ok"})
  35. return
  36. }
  37. }