account
This commit is contained in:
		
							
								
								
									
										45
									
								
								routers/account.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								routers/account.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"main/models"
 | 
			
		||||
	"main/utils"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// 獲取當前賬戶信息(重寫, 爲輸出增加sid字段)
 | 
			
		||||
func AccountGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	var account struct {
 | 
			
		||||
		ID        int    `json:"id"`
 | 
			
		||||
		Name      string `json:"name"`
 | 
			
		||||
		Email     string `json:"email"`
 | 
			
		||||
		SessionID string `json:"session_id"`
 | 
			
		||||
		CreatedAt string `json:"created_at"`
 | 
			
		||||
		UpdatedAt string `json:"updated_at"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 獲取Cookie
 | 
			
		||||
	cookie, err := r.Cookie("session_id")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 獲取會話
 | 
			
		||||
	session := models.Session{ID: cookie.Value}
 | 
			
		||||
	session.Get()
 | 
			
		||||
 | 
			
		||||
	// 獲取用戶
 | 
			
		||||
	user := models.User{ID: session.UserID}
 | 
			
		||||
	user.Get()
 | 
			
		||||
 | 
			
		||||
	account.ID = user.ID
 | 
			
		||||
	account.Name = user.Name
 | 
			
		||||
	account.Email = user.Email
 | 
			
		||||
	account.SessionID = session.ID
 | 
			
		||||
	account.CreatedAt = user.CreatedAt
 | 
			
		||||
	account.UpdatedAt = user.UpdatedAt
 | 
			
		||||
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
	w.Write(utils.ToJSON(account))
 | 
			
		||||
}
 | 
			
		||||
@@ -84,7 +84,7 @@ func SessionsPost(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
 | 
			
		||||
// 獲取會話
 | 
			
		||||
func SessionsItemGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	session := models.Session{ID: mux.Vars(r)["id"]}
 | 
			
		||||
	session := models.Session{ID: mux.Vars(r)["session_id"]}
 | 
			
		||||
	session.Get()
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
	w.Write(utils.ToJSON(session))
 | 
			
		||||
@@ -92,7 +92,7 @@ func SessionsItemGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
 | 
			
		||||
// 更新會話
 | 
			
		||||
func SessionsItemPatch(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	session := models.Session{ID: mux.Vars(r)["id"]}
 | 
			
		||||
	session := models.Session{ID: mux.Vars(r)["session_id"]}
 | 
			
		||||
	session.Get()
 | 
			
		||||
	session.Update()
 | 
			
		||||
	w.Header().Set("Content-Type", "application/json; charset=utf-8")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user