24 files changed
+147
-114
No files matched your search
+1
-1
@@ -1,2 +1,2 @@
|
||||
pub mod paste;
|
||||
pub mod users;
|
||||
pub mod users;
|
||||
@@ -7,4 +7,4 @@ pub struct Paste {
|
||||
pub belongs_to: Option<String>,
|
||||
pub is_url: bool,
|
||||
pub content: String,
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
pub mod entity;
|
||||
pub mod postgres;
|
||||
pub mod service;
|
||||
pub mod service;
|
||||
@@ -16,4 +16,4 @@ pub fn create_paste(paste: &Paste, conn: &PgConnection) -> Result<usize> {
|
||||
pub fn fetch_paste(id: String, conn: &PgConnection) -> Result<Paste> {
|
||||
let paste = pastes::table.find(id).get_result::<Paste>(conn)?;
|
||||
Ok(paste)
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,4 @@ pub fn create_paste(paste: &mut Paste, conn: &PgConnection) -> Result<usize> {
|
||||
|
||||
pub fn fetch_paste(id: String, conn: &PgConnection) -> Result<Paste> {
|
||||
postgres::fetch_paste(id, conn)
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,4 @@ pub struct User {
|
||||
pub username: Option<String>,
|
||||
pub password: Option<String>,
|
||||
pub activated: Option<bool>,
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
pub mod postgres;
|
||||
pub mod entity;
|
||||
pub mod service;
|
||||
pub mod postgres;
|
||||
pub mod service;
|
||||
@@ -1,6 +1,6 @@
|
||||
use diesel::prelude::*;
|
||||
use diesel::pg::PgConnection;
|
||||
use anyhow::Result;
|
||||
use diesel::pg::PgConnection;
|
||||
use diesel::prelude::*;
|
||||
|
||||
use crate::core::users::entity::User;
|
||||
use crate::schema::users;
|
||||
@@ -16,4 +16,4 @@ pub fn create_user(user: &User, conn: &PgConnection) -> Result<usize> {
|
||||
pub fn find_user(id: String, conn: &PgConnection) -> Result<User> {
|
||||
let user = users::table.find(id).get_result::<User>(conn)?;
|
||||
Ok(user)
|
||||
}
|
||||
}
|
||||
+14
-16
@@ -1,5 +1,5 @@
|
||||
use anyhow::Result;
|
||||
use bcrypt::{DEFAULT_COST, hash};
|
||||
use bcrypt::{hash, DEFAULT_COST};
|
||||
use diesel::pg::PgConnection;
|
||||
use diesel::result::Error;
|
||||
|
||||
@@ -16,21 +16,19 @@ pub fn create_user(user: &mut User, conn: &PgConnection) -> Result<usize> {
|
||||
pub fn create_or_fetch_user(id: String, conn: &PgConnection) -> Result<User> {
|
||||
let user = match postgres::find_user(id.clone(), conn) {
|
||||
Ok(user) => user,
|
||||
Err(err) => {
|
||||
match err.downcast_ref::<Error>() {
|
||||
Some(Error::NotFound) => {
|
||||
let new_user = User {
|
||||
id: id.clone(),
|
||||
username: None,
|
||||
password: None,
|
||||
activated: Some(false),
|
||||
};
|
||||
postgres::create_user(&new_user, conn)?;
|
||||
new_user
|
||||
}
|
||||
_ => return Err(err)
|
||||
Err(err) => match err.downcast_ref::<Error>() {
|
||||
Some(Error::NotFound) => {
|
||||
let new_user = User {
|
||||
id: id.clone(),
|
||||
username: None,
|
||||
password: None,
|
||||
activated: Some(false),
|
||||
};
|
||||
postgres::create_user(&new_user, conn)?;
|
||||
new_user
|
||||
}
|
||||
}
|
||||
_ => return Err(err),
|
||||
},
|
||||
};
|
||||
Ok(user)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user