Files
gamenight/backend-actix/src/request/user.rs

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)?))
}