feat: add open_id key to user (#10)
This commit is contained in:
parent
aa40793a68
commit
5dc3d4a39e
18
api/user.go
18
api/user.go
@ -75,6 +75,23 @@ func handleUpdateMyUserInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handleRefreshUserOpenId(w http.ResponseWriter, r *http.Request) {
|
||||||
|
userId, _ := GetUserIdInSession(r)
|
||||||
|
|
||||||
|
openId, err := store.UpdateUserOpenId(userId)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
e.ErrorHandler(w, "DATABASE_ERROR", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
json.NewEncoder(w).Encode(Response{
|
||||||
|
Succeed: true,
|
||||||
|
Message: "",
|
||||||
|
Data: openId,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
type CheckUsername struct {
|
type CheckUsername struct {
|
||||||
Username string
|
Username string
|
||||||
}
|
}
|
||||||
@ -138,6 +155,7 @@ func RegisterUserRoutes(r *mux.Router) {
|
|||||||
|
|
||||||
userRouter.HandleFunc("/me", handleGetMyUserInfo).Methods("GET")
|
userRouter.HandleFunc("/me", handleGetMyUserInfo).Methods("GET")
|
||||||
userRouter.HandleFunc("/me", handleUpdateMyUserInfo).Methods("PATCH")
|
userRouter.HandleFunc("/me", handleUpdateMyUserInfo).Methods("PATCH")
|
||||||
|
userRouter.HandleFunc("/open_id/new", handleRefreshUserOpenId).Methods("POST")
|
||||||
userRouter.HandleFunc("/checkusername", handleCheckUsername).Methods("POST")
|
userRouter.HandleFunc("/checkusername", handleCheckUsername).Methods("POST")
|
||||||
userRouter.HandleFunc("/validpassword", handleValidPassword).Methods("POST")
|
userRouter.HandleFunc("/validpassword", handleValidPassword).Methods("POST")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ CREATE TABLE `users` (
|
|||||||
`id` TEXT NOT NULL PRIMARY KEY,
|
`id` TEXT NOT NULL PRIMARY KEY,
|
||||||
`username` TEXT NOT NULL,
|
`username` TEXT NOT NULL,
|
||||||
`password` TEXT NOT NULL,
|
`password` TEXT NOT NULL,
|
||||||
|
`open_id` TEXT NOT NULL DEFAULT '',
|
||||||
`github_name` TEXT NOT NULL DEFAULT '',
|
`github_name` TEXT NOT NULL DEFAULT '',
|
||||||
`created_at` TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')),
|
`created_at` TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')),
|
||||||
`updated_at` TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')),
|
`updated_at` TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')),
|
||||||
|
|||||||
Binary file not shown.
@ -11,6 +11,7 @@ type User struct {
|
|||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
|
OpenId string `json:"openId"`
|
||||||
GithubName string `json:"githubName"`
|
GithubName string `json:"githubName"`
|
||||||
CreatedAt string `json:"createdAt"`
|
CreatedAt string `json:"createdAt"`
|
||||||
UpdatedAt string `json:"updatedAt"`
|
UpdatedAt string `json:"updatedAt"`
|
||||||
@ -22,13 +23,14 @@ func CreateNewUser(username string, password string, githubName string) (User, e
|
|||||||
Id: utils.GenUUID(),
|
Id: utils.GenUUID(),
|
||||||
Username: username,
|
Username: username,
|
||||||
Password: password,
|
Password: password,
|
||||||
|
OpenId: utils.GenUUID(),
|
||||||
GithubName: githubName,
|
GithubName: githubName,
|
||||||
CreatedAt: nowDateTimeStr,
|
CreatedAt: nowDateTimeStr,
|
||||||
UpdatedAt: nowDateTimeStr,
|
UpdatedAt: nowDateTimeStr,
|
||||||
}
|
}
|
||||||
|
|
||||||
query := `INSERT INTO users (id, username, password, github_name, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)`
|
query := `INSERT INTO users (id, username, password, open_id, github_name, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)`
|
||||||
_, err := DB.Exec(query, newUser.Id, newUser.Username, newUser.Password, newUser.GithubName, newUser.CreatedAt, newUser.UpdatedAt)
|
_, err := DB.Exec(query, newUser.Id, newUser.Username, newUser.Password, newUser.OpenId, newUser.GithubName, newUser.CreatedAt, newUser.UpdatedAt)
|
||||||
|
|
||||||
return newUser, err
|
return newUser, err
|
||||||
}
|
}
|
||||||
@ -64,24 +66,33 @@ func UpdateUser(id string, userPatch *UserPatch) (User, error) {
|
|||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateUserOpenId(userId string) (string, error) {
|
||||||
|
openId := utils.GenUUID()
|
||||||
|
|
||||||
|
query := `UPDATE users SET open_id=? WHERE id=?`
|
||||||
|
_, err := DB.Exec(query, openId, userId)
|
||||||
|
|
||||||
|
return openId, err
|
||||||
|
}
|
||||||
|
|
||||||
func GetUserById(id string) (User, error) {
|
func GetUserById(id string) (User, error) {
|
||||||
query := `SELECT id, username, password, github_name, created_at, updated_at FROM users WHERE id=?`
|
query := `SELECT id, username, password, open_id, github_name, created_at, updated_at FROM users WHERE id=?`
|
||||||
user := User{}
|
user := User{}
|
||||||
err := DB.QueryRow(query, id).Scan(&user.Id, &user.Username, &user.Password, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
err := DB.QueryRow(query, id).Scan(&user.Id, &user.Username, &user.Password, &user.OpenId, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserByUsernameAndPassword(username string, password string) (User, error) {
|
func GetUserByUsernameAndPassword(username string, password string) (User, error) {
|
||||||
query := `SELECT id, username, password, github_name, created_at, updated_at FROM users WHERE username=? AND password=?`
|
query := `SELECT id, username, password, open_id, github_name, created_at, updated_at FROM users WHERE username=? AND password=?`
|
||||||
user := User{}
|
user := User{}
|
||||||
err := DB.QueryRow(query, username, password).Scan(&user.Id, &user.Username, &user.Password, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
err := DB.QueryRow(query, username, password).Scan(&user.Id, &user.Username, &user.Password, &user.OpenId, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserByGithubName(githubName string) (User, error) {
|
func GetUserByGithubName(githubName string) (User, error) {
|
||||||
query := `SELECT id, username, password, github_name, created_at, updated_at FROM users WHERE github_name=?`
|
query := `SELECT id, username, password, open_id, github_name, created_at, updated_at FROM users WHERE github_name=?`
|
||||||
user := User{}
|
user := User{}
|
||||||
err := DB.QueryRow(query, githubName).Scan(&user.Id, &user.Username, &user.Password, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
err := DB.QueryRow(query, githubName).Scan(&user.Id, &user.Username, &user.Password, &user.OpenId, &user.GithubName, &user.CreatedAt, &user.UpdatedAt)
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user