Add call to list users
This commit is contained in:
parent
033ad31c71
commit
a7b88ca7e2
26
src/internal/admins/users.go
Normal file
26
src/internal/admins/users.go
Normal file
@ -0,0 +1,26 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/users"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/web"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// GetUsersHandler returns the user list
|
||||
func GetUsersHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error {
|
||||
log := env.Log.WithFields(logrus.Fields{
|
||||
"function": "admin.GetUsersHandler",
|
||||
})
|
||||
|
||||
log.Debug("Getting users")
|
||||
|
||||
users, err := users.GetAll(env.Database)
|
||||
if err != nil {
|
||||
return env.RenderError(w, err)
|
||||
}
|
||||
|
||||
return env.RenderJSON(w, users)
|
||||
}
|
@ -24,6 +24,8 @@ const (
|
||||
getTokensQuery = `SELECT id, value FROM tokens WHERE user_id=$1;`
|
||||
checkTokenQuery = `SELECT count(*) FROM tokens WHERE user_id=$1 AND value=$2;`
|
||||
deleteTokenQuery = `DELETE FROM tokens WHERE user_id=$1 AND value=$2;`
|
||||
|
||||
getAllUsersQuery = `SELECT * FROM users;`
|
||||
)
|
||||
|
||||
const (
|
||||
@ -133,6 +135,16 @@ func Get(q sqlx.Queryer, name string) (*User, error) {
|
||||
return u, nil
|
||||
}
|
||||
|
||||
// GetAll returns all the users
|
||||
func GetAll(db *sqlx.DB) ([]*User, error) {
|
||||
users := []*User{}
|
||||
err := db.Select(&users, getAllUsersQuery)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return users, nil
|
||||
}
|
||||
|
||||
// Add user to database or raises an error
|
||||
func (u *User) Add(q sqlx.Queryer) error {
|
||||
var id string
|
||||
|
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/admins"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/external_medias"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/movies"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/shows"
|
||||
@ -56,4 +57,7 @@ func setupRoutes(env *web.Env) {
|
||||
|
||||
// Route to refresh all movies and shows
|
||||
env.Handle("/refresh", extmedias.RefreshHandler).WithRole(users.AdminRole).Methods("POST")
|
||||
|
||||
// Admin routes
|
||||
env.Handle("/admins/users", admin.GetUsersHandler).WithRole(users.AdminRole).Methods("GET")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user