改爲手動添加服務器

This commit is contained in:
2023-05-29 13:48:09 +08:00
parent 9fac5e5b05
commit c832e0f4e9
3 changed files with 71 additions and 45 deletions

View File

@@ -48,9 +48,18 @@ func ServersPost(w http.ResponseWriter, r *http.Request) {
var server models.Server
// 獲取參數
body, _ := ioutil.ReadAll(r.Body)
body, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Println("獲取數據失敗:", err)
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(err.Error()))
return
}
defer r.Body.Close()
// 解碼JSON
if err := json.Unmarshal(body, &server); err != nil {
fmt.Println("解碼JSON失敗:", err)
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(err.Error()))
return
@@ -69,18 +78,36 @@ func ServersPost(w http.ResponseWriter, r *http.Request) {
}
// 如果不指定 port則使用默認 port
if server.Port == 0 {
if server.Port <= 0 {
server.Port = 7860
}
// 如果不指定IP則自動創建新服務器
if server.IP == "" {
// TODO: 創建新服務器
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(utils.ToJSON(server))
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte("必須指定IP, 因爲當前禁止自動創建服務器"))
return
}
// 檢查服務器是否已經存在
var count int64
configs.ORMDB().Model(&models.Server{}).Where("ip = ?", server.IP).Count(&count)
if count > 0 {
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte("服務器已經存在"))
return
}
// 檢查服務器狀態是否正常
err = server.CheckStatus()
if err != nil {
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte("服務器狀態錯誤:" + err.Error()))
return
}
// 創建服務器
configs.ORMDB().Create(&server)
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(utils.ToJSON(server))