diff --git a/net/server/internal/api_getAccountListing.go b/net/server/internal/api_getAccountListing.go index c9427975..b829d3a7 100644 --- a/net/server/internal/api_getAccountListing.go +++ b/net/server/internal/api_getAccountListing.go @@ -8,11 +8,21 @@ import ( //GetAccountListing retrieves profile list of publicly accessible accounts func GetAccountListing(w http.ResponseWriter, r *http.Request) { + filter := r.FormValue("filter") var accounts []store.Account - if err := store.DB.Preload("AccountDetail").Where("searchable = ? AND disabled = ?", true, false).Find(&accounts).Error; err != nil { - ErrResponse(w, http.StatusInternalServerError, err) - return - } + if filter == "" { + if err := store.DB.Order("id desc").Limit(16).Preload("AccountDetail").Where("searchable = ? AND disabled = ?", true, false).Find(&accounts).Error; err != nil { + ErrResponse(w, http.StatusInternalServerError, err) + return + } + } else { + username := "%" + filter + "%" + PrintMsg(username); + if err := store.DB.Order("id desc").Limit(16).Preload("AccountDetail").Where("username LIKE ? AND searchable = ? AND disabled = ?", username, true, false).Find(&accounts).Error; err != nil { + ErrResponse(w, http.StatusInternalServerError, err) + return + } + } profiles := []CardProfile{} for _, account := range accounts {