account
This commit is contained in:
@@ -11,6 +11,8 @@ TEST:
|
|||||||
- [x] GET [/api/images](/api/images) 圖片列表
|
- [x] GET [/api/images](/api/images) 圖片列表
|
||||||
- [x] GET [/api/tasks](/api/tasks) 任務列表
|
- [x] GET [/api/tasks](/api/tasks) 任務列表
|
||||||
- [x] GET [/api/tags](/api/tags) 標籤列表
|
- [x] GET [/api/tags](/api/tags) 標籤列表
|
||||||
|
- [x] GET [/api/params](/api/params) 參數列表
|
||||||
|
- [x] GET [/api/account](/api/account) 賬戶信息
|
||||||
|
|
||||||
TEST:
|
TEST:
|
||||||
|
|
||||||
|
1
main.go
1
main.go
@@ -97,6 +97,7 @@ func main() {
|
|||||||
r.HandleFunc("/api/servers/{id}", routers.ServersItemDelete).Methods("DELETE")
|
r.HandleFunc("/api/servers/{id}", routers.ServersItemDelete).Methods("DELETE")
|
||||||
|
|
||||||
r.HandleFunc("/api/params/model", routers.ParamsModelsGet).Methods("GET")
|
r.HandleFunc("/api/params/model", routers.ParamsModelsGet).Methods("GET")
|
||||||
|
r.HandleFunc("/api/account", routers.AccountGet).Methods("GET")
|
||||||
|
|
||||||
log.Println("Web Server is running on http://localhost:8080")
|
log.Println("Web Server is running on http://localhost:8080")
|
||||||
http.ListenAndServe(":8080", r)
|
http.ListenAndServe(":8080", r)
|
||||||
|
@@ -38,7 +38,6 @@ func (user *User) Create(name, email, password string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
fmt.Println(user)
|
|
||||||
stmt, err := db.Prepare("INSERT INTO users(name, email, password, slat, created_at, updated_at) values(?, ?, ?, ?, ?, ?)")
|
stmt, err := db.Prepare("INSERT INTO users(name, email, password, slat, created_at, updated_at) values(?, ?, ?, ?, ?, ?)")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -100,6 +99,21 @@ func (user *User) Update() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (user *User) RoadByID(id int) (err error) {
|
||||||
|
db, err := configs.GetDB()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
err = db.QueryRow("SELECT id, name, email, password, slat, created_at, updated_at FROM users WHERE id = ?", user.ID).Scan(&user.ID, &user.Name, &user.Email, &user.Password, &user.Slat, &user.CreatedAt, &user.UpdatedAt)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (user *User) Get() error {
|
func (user *User) Get() error {
|
||||||
db, err := configs.GetDB()
|
db, err := configs.GetDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -107,7 +121,7 @@ func (user *User) Get() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
err = db.QueryRow("SELECT id, name, email, password, slat, created_at, updated_at FROM users WHERE email = ?", user.ID).Scan(&user.ID, &user.Name, &user.Email, &user.Password, &user.Slat, &user.CreatedAt, &user.UpdatedAt)
|
err = db.QueryRow("SELECT id, name, email, password, slat, created_at, updated_at FROM users WHERE id = ?", user.ID).Scan(&user.ID, &user.Name, &user.Email, &user.Password, &user.Slat, &user.CreatedAt, &user.UpdatedAt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Session struct {
|
|||||||
UpdatedAt string `json:"updated_at"`
|
UpdatedAt string `json:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (session *Session) Get() {
|
func (session *Session) Get() (err error) {
|
||||||
db, err := configs.GetDB()
|
db, err := configs.GetDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -26,6 +26,7 @@ func (session *Session) Get() {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (session *Session) Create() error {
|
func (session *Session) Create() error {
|
||||||
@@ -94,31 +95,6 @@ func (session *Session) Update() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
//func GetSessions() ([]Session, error) {
|
|
||||||
// db, err := configs.GetDB()
|
|
||||||
// if err != nil {
|
|
||||||
// log.Println(err)
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// defer db.Close()
|
|
||||||
// rows, err := db.Query("SELECT id, name FROM sessions")
|
|
||||||
// if err != nil {
|
|
||||||
// log.Println(err)
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// defer rows.Close()
|
|
||||||
// sessions := []Session{}
|
|
||||||
// for rows.Next() {
|
|
||||||
// var session Session
|
|
||||||
// if err := rows.Scan(&session.ID, &session.Name); err != nil {
|
|
||||||
// log.Println(err)
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// sessions = append(sessions, session)
|
|
||||||
// }
|
|
||||||
// return sessions, nil
|
|
||||||
//}
|
|
||||||
|
|
||||||
func GetSession(id int) (*Session, error) {
|
func GetSession(id int) (*Session, error) {
|
||||||
db, err := configs.GetDB()
|
db, err := configs.GetDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
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) {
|
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()
|
session.Get()
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
w.Write(utils.ToJSON(session))
|
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) {
|
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.Get()
|
||||||
session.Update()
|
session.Update()
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
Reference in New Issue
Block a user