account auto
This commit is contained in:
		@@ -43,3 +43,25 @@ func AccountGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
	w.Write(utils.ToJSON(account))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 獲取當前賬戶, 並將其傳入回調函數
 | 
			
		||||
func get_account(w http.ResponseWriter, r *http.Request, callback func(*models.User)) (err error) {
 | 
			
		||||
	// 獲取Cookie
 | 
			
		||||
	cookie, err := r.Cookie("session_id")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 獲取會話
 | 
			
		||||
	session := models.Session{ID: cookie.Value}
 | 
			
		||||
	session.Get()
 | 
			
		||||
 | 
			
		||||
	// 獲取用戶
 | 
			
		||||
	user := models.User{ID: session.UserID}
 | 
			
		||||
	user.Get()
 | 
			
		||||
 | 
			
		||||
	callback(&user)
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"main/models"
 | 
			
		||||
@@ -26,20 +27,26 @@ func ModelsGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ModelsPost(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	var model models.Model
 | 
			
		||||
	body, err := ioutil.ReadAll(r.Body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	defer r.Body.Close()
 | 
			
		||||
	if err = json.Unmarshal(body, &model); err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	model.Create()
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
	w.Write(utils.ToJSON(model))
 | 
			
		||||
	// 取得用戶
 | 
			
		||||
	models.AccountRead(w, r, func(account *models.Account) {
 | 
			
		||||
		fmt.Println(account)
 | 
			
		||||
		// TODO: 判斷權限(是否可以創建)
 | 
			
		||||
		// 創建模型
 | 
			
		||||
		var model models.Model
 | 
			
		||||
		body, err := ioutil.ReadAll(r.Body)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Println(err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		defer r.Body.Close()
 | 
			
		||||
		if err = json.Unmarshal(body, &model); err != nil {
 | 
			
		||||
			log.Println(err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		model.Create()
 | 
			
		||||
		w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
		w.Write(utils.ToJSON(model))
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ModelItemGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
 
 | 
			
		||||
@@ -119,7 +119,7 @@ func SessionsItemDelete(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	user := models.User{ID: session.UserID}
 | 
			
		||||
	user.Get()
 | 
			
		||||
 | 
			
		||||
	sessionx := models.Session{ID: mux.Vars(r)["id"]}
 | 
			
		||||
	sessionx := models.Session{ID: mux.Vars(r)["session_id"]}
 | 
			
		||||
	sessionx.Get()
 | 
			
		||||
 | 
			
		||||
	if user.ID != sessionx.UserID {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user