patch datasets
This commit is contained in:
		@@ -26,6 +26,7 @@ func init() {
 | 
				
			|||||||
	configs.ORMDB().AutoMigrate(&Dataset{})
 | 
						configs.ORMDB().AutoMigrate(&Dataset{})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 獲取數據集列表
 | 
				
			||||||
func DatasetsGet(w http.ResponseWriter, r *http.Request) {
 | 
					func DatasetsGet(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
	var listview models.ListView
 | 
						var listview models.ListView
 | 
				
			||||||
	listview.Page = utils.ParamInt(r.URL.Query().Get("page"), 1)
 | 
						listview.Page = utils.ParamInt(r.URL.Query().Get("page"), 1)
 | 
				
			||||||
@@ -41,6 +42,7 @@ func DatasetsGet(w http.ResponseWriter, r *http.Request) {
 | 
				
			|||||||
	listview.WriteJSON(w)
 | 
						listview.WriteJSON(w)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 新增數據集
 | 
				
			||||||
func DatasetsPost(w http.ResponseWriter, r *http.Request) {
 | 
					func DatasetsPost(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
	models.AccountRead(w, r, func(account *models.Account) {
 | 
						models.AccountRead(w, r, func(account *models.Account) {
 | 
				
			||||||
		var dataset Dataset
 | 
							var dataset Dataset
 | 
				
			||||||
@@ -79,7 +81,36 @@ func DatasetsItemGet(w http.ResponseWriter, r *http.Request) {
 | 
				
			|||||||
	w.Write(utils.ToJSON(dataset))
 | 
						w.Write(utils.ToJSON(dataset))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 修改數據集
 | 
				
			||||||
func DatasetsItemPatch(w http.ResponseWriter, r *http.Request) {
 | 
					func DatasetsItemPatch(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
 | 
						models.AccountRead(w, r, func(account *models.Account) {
 | 
				
			||||||
 | 
							var dataset Dataset = Dataset{ID: utils.ParamInt(mux.Vars(r)["dataset_id"], 0)}
 | 
				
			||||||
 | 
							if err := configs.ORMDB().Find(&dataset).Error; err != nil {
 | 
				
			||||||
 | 
								w.WriteHeader(http.StatusNotFound)
 | 
				
			||||||
 | 
								w.Write([]byte("404 - Not Found"))
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if dataset.UserID != account.ID && !account.Admin {
 | 
				
			||||||
 | 
								w.WriteHeader(http.StatusForbidden)
 | 
				
			||||||
 | 
								w.Write([]byte("403 - Forbidden"))
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							var form map[string]interface{} = utils.BodyRead(r)
 | 
				
			||||||
 | 
							if name, ok := form["name"].(string); ok {
 | 
				
			||||||
 | 
								dataset.Name = name
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if info, ok := form["info"].(string); ok {
 | 
				
			||||||
 | 
								dataset.Info = info
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if err := configs.ORMDB().Save(&dataset).Error; err != nil {
 | 
				
			||||||
 | 
								w.WriteHeader(http.StatusInternalServerError)
 | 
				
			||||||
 | 
								w.Write([]byte("500 - Internal Server Error"))
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
				
			||||||
 | 
							w.Write(utils.ToJSON(dataset))
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dataset := Dataset{ID: utils.ParamInt(mux.Vars(r)["dataset_id"], 0)}
 | 
						dataset := Dataset{ID: utils.ParamInt(mux.Vars(r)["dataset_id"], 0)}
 | 
				
			||||||
	// 取出更新数据
 | 
						// 取出更新数据
 | 
				
			||||||
	var dataset_new Dataset
 | 
						var dataset_new Dataset
 | 
				
			||||||
		Reference in New Issue
	
	Block a user