Converted the Api to a Restful api.
This commit is contained in:
37
backend-actix/src/request/user.rs
Normal file
37
backend-actix/src/request/user.rs
Normal file
@@ -0,0 +1,37 @@
|
||||
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)?))
|
||||
}
|
||||
Reference in New Issue
Block a user