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;`
|
getTokensQuery = `SELECT id, value FROM tokens WHERE user_id=$1;`
|
||||||
checkTokenQuery = `SELECT count(*) FROM tokens WHERE user_id=$1 AND value=$2;`
|
checkTokenQuery = `SELECT count(*) FROM tokens WHERE user_id=$1 AND value=$2;`
|
||||||
deleteTokenQuery = `DELETE 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 (
|
const (
|
||||||
@ -133,6 +135,16 @@ func Get(q sqlx.Queryer, name string) (*User, error) {
|
|||||||
return u, nil
|
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
|
// Add user to database or raises an error
|
||||||
func (u *User) Add(q sqlx.Queryer) error {
|
func (u *User) Add(q sqlx.Queryer) error {
|
||||||
var id string
|
var id string
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
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/external_medias"
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/movies"
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/movies"
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/shows"
|
"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
|
// Route to refresh all movies and shows
|
||||||
env.Handle("/refresh", extmedias.RefreshHandler).WithRole(users.AdminRole).Methods("POST")
|
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