add getUsers
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-04-04 08:36:07 +10:00
parent 1c419454a2
commit 2d7a55e427
3 changed files with 42 additions and 8 deletions

View File

@@ -136,3 +136,15 @@ func GetRoles(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "success", "data": roles})
}
func GetUsers(c *gin.Context) {
users, err := models.QueryUsers()
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"message": "success", "data": users})
}

View File

@@ -142,6 +142,7 @@ func main() {
adminOnly.Use(middlewares.JwtAuthAdminMiddleware())
adminOnly.POST("/register", controllers.Register)
adminOnly.GET("/roles", controllers.GetRoles)
adminOnly.GET("/users", controllers.GetUsers)
// Get secrets
protected := router.Group("/api/secret")

View File

@@ -28,11 +28,9 @@ func (u *User) SaveUser() (*User, error) {
var err error
// TODO - validate username not already in use
// Validate username not already in use
_, err = GetUserByName(u.UserName)
if err != nil {
log.Printf("SaveUser Username already exists : '%v'\n", err)
} else {
if err != nil && err.Error() == "user not found" {
log.Printf("SaveUser confirmed no existing user, continuing with creation of user '%s'\n", u.UserName)
result, err := db.NamedExec((`INSERT INTO users (RoleId, UserName, Password) VALUES (:RoleId, :UserName, :Password)`), u)
@@ -44,6 +42,8 @@ func (u *User) SaveUser() (*User, error) {
id, _ := result.LastInsertId()
log.Printf("SaveUser insert returned result id '%d' affecting %d row(s).\n", id, affected)
}
} else {
log.Printf("SaveUser Username already exists : '%v'\n", err)
}
return u, nil
@@ -159,8 +159,29 @@ func GetUserRoleFromToken(c *gin.Context) (UserRole, error) {
return ur, nil
}
/*
func (u *User) PrepareGive() {
u.Password = ""
func QueryUsers() ([]User, error) {
var results []User
// Query database for role definitions
rows, err := db.Queryx("SELECT * FROM users")
if err != nil {
log.Printf("QueryUsers error executing sql record : '%s'\n", err)
return results, err
} else {
// parse all the results into a slice
for rows.Next() {
var u User
err = rows.StructScan(&u)
if err != nil {
log.Printf("QueryUsers error parsing sql record : '%s'\n", err)
return results, err
}
results = append(results, u)
}
log.Printf("QueryUsers retrieved '%d' results\n", len(results))
}
return results, nil
}
*/