mirror of
https://github.com/modrinth/code.git
synced 2026-09-01 12:36:44 +00:00
feat: user search (#6302)
* feat: user search * refactor: use sqlx macro * refactor: better name for escaped query * style: cleanup unused import * chore: update sqlx query cache * fix: tests --------- Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com>
This commit is contained in:
@@ -39,6 +39,7 @@ use validator::Validate;
|
||||
pub fn config(cfg: &mut web::ServiceConfig) {
|
||||
cfg.route("user", web::get().to(user_auth_get));
|
||||
cfg.route("users", web::get().to(users_get));
|
||||
cfg.route("users/search", web::get().to(users_search));
|
||||
cfg.route("user_email", web::get().to(admin_user_email));
|
||||
|
||||
cfg.service(
|
||||
@@ -327,6 +328,26 @@ pub struct UserIds {
|
||||
pub ids: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct UserSearchQuery {
|
||||
pub query: String,
|
||||
}
|
||||
|
||||
pub async fn users_search(
|
||||
web::Query(query): web::Query<UserSearchQuery>,
|
||||
pool: web::Data<PgPool>,
|
||||
) -> Result<web::Json<Vec<crate::models::users::SearchUser>>, ApiError> {
|
||||
let query = query.query.trim();
|
||||
let users = DBUser::search(query, &**pool)
|
||||
.await
|
||||
.wrap_internal_err("failed to search users")?
|
||||
.into_iter()
|
||||
.map(Into::into)
|
||||
.collect();
|
||||
|
||||
Ok(web::Json(users))
|
||||
}
|
||||
|
||||
pub async fn users_get(
|
||||
req: HttpRequest,
|
||||
web::Query(ids): web::Query<UserIds>,
|
||||
|
||||
Reference in New Issue
Block a user