pastes: add a route to update pastes
Signed-off-by: ATechnoHazard <amolele@gmail.com>
This commit is contained in:
4 files changed
+72
-8
No files matched your search
@@ -9,10 +9,17 @@ use super::entity::Paste;
|
||||
pub fn create_paste(paste: &Paste, conn: &PgConnection) -> Result<usize> {
|
||||
let rows = diesel::insert_into(pastes::table)
|
||||
.values(paste)
|
||||
.on_conflict_do_nothing()
|
||||
.execute(conn)?;
|
||||
Ok(rows)
|
||||
}
|
||||
|
||||
pub fn update_paste(paste: &Paste, conn: &PgConnection) -> Result<Paste> {
|
||||
use crate::schema::pastes::dsl::*;
|
||||
let updated_user = diesel::update(pastes.filter(id.eq(paste.id.as_ref().unwrap()))).set(paste).get_result(conn)?;
|
||||
Ok(updated_user)
|
||||
}
|
||||
|
||||
pub fn fetch_paste(id: String, conn: &PgConnection) -> Result<Paste> {
|
||||
let paste = pastes::table.find(id).get_result::<Paste>(conn)?;
|
||||
Ok(paste)
|
||||
|
||||
@@ -14,3 +14,9 @@ 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)
|
||||
}
|
||||
|
||||
pub fn update_paste(paste: &mut Paste, conn: &PgConnection) -> Result<Paste> {
|
||||
let re = RegexBuilder::new("^(https?://)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(:\\d+)?(/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(#[-a-z\\d_]*)?$").case_insensitive(true).build().unwrap();
|
||||
paste.is_url = Some(re.is_match(&*paste.content.clone()));
|
||||
postgres::update_paste(paste, conn)
|
||||
}
|
||||
Reference in new issue
Block a user