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}/set", a.deviceUpdateMsg).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
|
||||
iot.Use(func(handler http.Handler) http.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
|
||||
corsOpts := cors.GetCorsConfig()
|
||||
|
||||
|
|
@ -100,6 +105,20 @@ func (a *Api) retrieveDevices(w http.ResponseWriter, r *http.Request) {
|
|||
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) {
|
||||
vars := mux.Vars(r)
|
||||
sn := vars["sn"]
|
||||
|
|
|
|||
|
|
@ -26,6 +26,18 @@ func (d *Database) RegisterUser(user User) error {
|
|||
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) {
|
||||
var result User
|
||||
err := d.users.FindOne(d.ctx, bson.D{{"email", email}}).Decode(&result)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user