func getUsers(w http.ResponseWriter, r *twocloud.RequestBundle) { if !r.AuthUser.IsAdmin { Respond(w, r, http.StatusForbidden, "You don't have access to the user list.", []interface{}{}) return } active_afterstr := r.Request.URL.Query().Get("active_after") active_beforestr := r.Request.URL.Query().Get("active_before") joined_afterstr := r.Request.URL.Query().Get("joined_after") joined_beforestr := r.Request.URL.Query().Get("joined_before") var joined_before, joined_after, active_before, active_after time.Time countstr := r.Request.URL.Query().Get("count") count := 20 var err error if countstr != "" { count, err = strconv.Atoi(countstr) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusBadRequest, "Invalid count param.", []interface{}{}) return } } if count > 100 { count = 100 } if active_afterstr != "" { active_after, err = time.Parse(time.RFC3339, active_afterstr) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusBadRequest, "Invalid active_after value.", []interface{}{}) return } } if active_beforestr != "" { active_before, err = time.Parse(time.RFC3339, active_beforestr) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusBadRequest, "Invalid active_before value.", []interface{}{}) return } } if active_beforestr != "" || active_afterstr != "" { users, err := r.GetUsersByActivity(count, active_after, active_before) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusInternalServerError, "Internal server error.", []interface{}{}) return } Respond(w, r, http.StatusOK, "Successfully retrieved a list of users", []interface{}{users}) return } if joined_afterstr != "" { joined_after, err = time.Parse(time.RFC3339, joined_afterstr) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusBadRequest, "Invalid joined_after value.", []interface{}{}) return } } if joined_beforestr != "" { joined_before, err = time.Parse(time.RFC3339, joined_beforestr) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusBadRequest, "Invalid joined_before value.", []interface{}{}) return } } users, err := r.GetUsersByJoinDate(count, joined_after, joined_before) if err != nil { r.Log.Error(err.Error()) Respond(w, r, http.StatusInternalServerError, "Internal server error.", []interface{}{users}) return } Respond(w, r, http.StatusOK, "Successfully retrieved a list of users", []interface{}{users}) return }