改爲手動添加服務器
This commit is contained in:
		@@ -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))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user