Diesel query
(auth_data: AuthData, pool: web::Data<Pool>)
| 63 | /// Diesel query |
| 64 | fn query(auth_data: AuthData, pool: web::Data<Pool>) -> Result<SlimUser, ServiceError> { |
| 65 | use crate::schema::users::dsl::{email, users}; |
| 66 | |
| 67 | let mut conn = pool.get().unwrap(); |
| 68 | |
| 69 | let mut items = users |
| 70 | .filter(email.eq(&auth_data.email)) |
| 71 | .load::<User>(&mut conn)?; |
| 72 | |
| 73 | if let Some(user) = items.pop() |
| 74 | && let Ok(matching) = verify(&user.hash, &auth_data.password) |
| 75 | && matching |
| 76 | { |
| 77 | return Ok(user.into()); |
| 78 | } |
| 79 | Err(ServiceError::Unauthorized) |
| 80 | } |
no test coverage detected