38 lines
790 B
Go
38 lines
790 B
Go
package models
|
|
|
|
import "log"
|
|
|
|
type Role struct {
|
|
RoleId int `db:"RoleId"`
|
|
RoleName string `db:"RoleName"`
|
|
ReadOnly bool `db:"ReadOnly"`
|
|
Admin bool `db:"Admin"`
|
|
}
|
|
|
|
func QueryRoles() ([]Role, error) {
|
|
var results []Role
|
|
|
|
// Query database for role definitions
|
|
rows, err := db.Queryx("SELECT * FROM roles")
|
|
|
|
if err != nil {
|
|
log.Printf("QueryRoles error executing sql record : '%s'\n", err)
|
|
return results, err
|
|
} else {
|
|
// parse all the results into a slice
|
|
for rows.Next() {
|
|
var r Role
|
|
err = rows.StructScan(&r)
|
|
if err != nil {
|
|
log.Printf("QueryRoles error parsing sql record : '%s'\n", err)
|
|
return results, err
|
|
}
|
|
results = append(results, r)
|
|
|
|
}
|
|
log.Printf("QueryRoles retrieved '%d' results\n", len(results))
|
|
}
|
|
|
|
return results, nil
|
|
}
|