37 lines
945 B
Rust
37 lines
945 B
Rust
use crate::models::user::User;
|
|
use crate::request::error::ApiError;
|
|
use actix_web::{get, http::header::ContentType, web, HttpResponse, Responder};
|
|
use gamenight_database::{DbPool, GetConnection};
|
|
use serde_json;
|
|
use uuid::Uuid;
|
|
|
|
use super::authorization::AuthUser;
|
|
|
|
|
|
impl From<gamenight_database::user::User> for User {
|
|
fn from(value: gamenight_database::user::User) -> Self {
|
|
Self {
|
|
id: value.id.to_string(),
|
|
username: value.username,
|
|
email: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[get("/user/{userId}")]
|
|
pub async fn get_user(
|
|
pool: web::Data<DbPool>,
|
|
_user: AuthUser,
|
|
user_id: web::Path<Uuid>,
|
|
) -> Result<impl Responder, ApiError> {
|
|
let mut conn = pool.get_conn();
|
|
|
|
let user = gamenight_database::user::get_user(
|
|
&mut conn,
|
|
user_id.into_inner()
|
|
)?;
|
|
|
|
Ok(HttpResponse::Ok()
|
|
.content_type(ContentType::json())
|
|
.body(serde_json::to_string(&user)?))
|
|
} |