feat(api): retrieve all users
This commit is contained in:
parent
d4b6e6775a
commit
8dae5960e7
|
|
@ -56,14 +56,19 @@ func StartApi(a Api) {
|
||||||
iot.HandleFunc("/{sn}/del", a.deviceDeleteMsg).Methods("PUT")
|
iot.HandleFunc("/{sn}/del", a.deviceDeleteMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/{sn}/set", a.deviceUpdateMsg).Methods("PUT")
|
iot.HandleFunc("/{sn}/set", a.deviceUpdateMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/{sn}/parameters", a.deviceGetSupportedParametersMsg).Methods("PUT")
|
iot.HandleFunc("/{sn}/parameters", a.deviceGetSupportedParametersMsg).Methods("PUT")
|
||||||
//TODO: Create operation action handler
|
|
||||||
iot.HandleFunc("/device/{sn}/act", a.deviceUpdateMsg).Methods("PUT")
|
|
||||||
|
|
||||||
// Middleware for requests which requires user to be authenticated
|
// Middleware for requests which requires user to be authenticated
|
||||||
iot.Use(func(handler http.Handler) http.Handler {
|
iot.Use(func(handler http.Handler) http.Handler {
|
||||||
return middleware.Middleware(handler)
|
return middleware.Middleware(handler)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
users := r.PathPrefix("/api/users").Subrouter()
|
||||||
|
users.HandleFunc("", a.retrieveUsers).Methods("GET")
|
||||||
|
|
||||||
|
users.Use(func(handler http.Handler) http.Handler {
|
||||||
|
return middleware.Middleware(handler)
|
||||||
|
})
|
||||||
|
|
||||||
// Verifies CORS configs for requests
|
// Verifies CORS configs for requests
|
||||||
corsOpts := cors.GetCorsConfig()
|
corsOpts := cors.GetCorsConfig()
|
||||||
|
|
||||||
|
|
@ -100,6 +105,20 @@ func (a *Api) retrieveDevices(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Api) retrieveUsers(w http.ResponseWriter, r *http.Request) {
|
||||||
|
devices, err := a.Db.FindAllUsers()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = json.NewEncoder(w).Encode(devices)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (a *Api) deviceGetSupportedParametersMsg(w http.ResponseWriter, r *http.Request) {
|
func (a *Api) deviceGetSupportedParametersMsg(w http.ResponseWriter, r *http.Request) {
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
sn := vars["sn"]
|
sn := vars["sn"]
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,18 @@ func (d *Database) RegisterUser(user User) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Database) FindAllUsers() ([]User, error) {
|
||||||
|
var result []User
|
||||||
|
cursor, err := d.users.Find(d.ctx, bson.D{{}})
|
||||||
|
if err != nil {
|
||||||
|
return []User{}, err
|
||||||
|
}
|
||||||
|
if err = cursor.All(d.ctx, &result); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Database) FindUser(email string) (User, error) {
|
func (d *Database) FindUser(email string) (User, error) {
|
||||||
var result User
|
var result User
|
||||||
err := d.users.FindOne(d.ctx, bson.D{{"email", email}}).Decode(&result)
|
err := d.users.FindOne(d.ctx, bson.D{{"email", email}}).Decode(&result)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user