/* * This file is part of laurelin/api * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use diesel::{ExpressionMethods, PgConnection, QueryDsl, RunQueryDsl}; use laurelin_schema::schema::users; use laurelin_shared::{ error::api::APIError, types::user::{User, UserPub}, }; use uuid::Uuid; pub(crate) fn info(conn: &mut PgConnection, user_id: &str) -> Result { let user = match users::table .filter(users::id.eq(&Uuid::try_parse(user_id).unwrap())) // TODO: handle .first::(conn) { Err(_) => { return Err(APIError::UserNotFound); } Ok(user) => user, }; Ok(UserPub::from_user(&user)) }