patch datasets
This commit is contained in:
		@@ -26,6 +26,7 @@ func init() {
 | 
			
		||||
	configs.ORMDB().AutoMigrate(&Dataset{})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 獲取數據集列表
 | 
			
		||||
func DatasetsGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	var listview models.ListView
 | 
			
		||||
	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)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 新增數據集
 | 
			
		||||
func DatasetsPost(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	models.AccountRead(w, r, func(account *models.Account) {
 | 
			
		||||
		var dataset Dataset
 | 
			
		||||
@@ -79,7 +81,36 @@ func DatasetsItemGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	w.Write(utils.ToJSON(dataset))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改數據集
 | 
			
		||||
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)}
 | 
			
		||||
	// 取出更新数据
 | 
			
		||||
	var dataset_new Dataset
 | 
			
		||||
		Reference in New Issue
	
	Block a user