feat: add open_id key to user (#10)

pull/12/head
STEVEN 4 years ago committed by GitHub
parent aa40793a68
commit 5dc3d4a39e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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…
Cancel
Save