Impl Crud for CustomEmoji

This commit is contained in:
Freakazoid182 2024-04-05 22:55:36 +02:00
parent 5342a22765
commit bab417a73e
4 changed files with 31 additions and 19 deletions

View file

@ -5,10 +5,13 @@ use lemmy_api_common::{
custom_emoji::{CreateCustomEmoji, CustomEmojiResponse}, custom_emoji::{CreateCustomEmoji, CustomEmojiResponse},
utils::is_admin, utils::is_admin,
}; };
use lemmy_db_schema::source::{ use lemmy_db_schema::{
custom_emoji::{CustomEmoji, CustomEmojiInsertForm}, source::{
custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm}, custom_emoji::{CustomEmoji, CustomEmojiInsertForm},
local_site::LocalSite, custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm},
local_site::LocalSite,
},
traits::Crud,
}; };
use lemmy_db_views::structs::{CustomEmojiView, LocalUserView}; use lemmy_db_views::structs::{CustomEmojiView, LocalUserView};
use lemmy_utils::error::LemmyError; use lemmy_utils::error::LemmyError;

View file

@ -6,7 +6,7 @@ use lemmy_api_common::{
utils::is_admin, utils::is_admin,
SuccessResponse, SuccessResponse,
}; };
use lemmy_db_schema::source::custom_emoji::CustomEmoji; use lemmy_db_schema::{source::custom_emoji::CustomEmoji, traits::Crud};
use lemmy_db_views::structs::LocalUserView; use lemmy_db_views::structs::LocalUserView;
use lemmy_utils::error::LemmyError; use lemmy_utils::error::LemmyError;

View file

@ -5,10 +5,13 @@ use lemmy_api_common::{
custom_emoji::{CustomEmojiResponse, EditCustomEmoji}, custom_emoji::{CustomEmojiResponse, EditCustomEmoji},
utils::is_admin, utils::is_admin,
}; };
use lemmy_db_schema::source::{ use lemmy_db_schema::{
custom_emoji::{CustomEmoji, CustomEmojiUpdateForm}, source::{
custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm}, custom_emoji::{CustomEmoji, CustomEmojiUpdateForm},
local_site::LocalSite, custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm},
local_site::LocalSite,
},
traits::Crud,
}; };
use lemmy_db_views::structs::{CustomEmojiView, LocalUserView}; use lemmy_db_views::structs::{CustomEmojiView, LocalUserView};
use lemmy_utils::error::LemmyError; use lemmy_utils::error::LemmyError;

View file

@ -8,35 +8,41 @@ use crate::{
custom_emoji::{CustomEmoji, CustomEmojiInsertForm, CustomEmojiUpdateForm}, custom_emoji::{CustomEmoji, CustomEmojiInsertForm, CustomEmojiUpdateForm},
custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm}, custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm},
}, },
traits::Crud,
utils::{get_conn, DbPool}, utils::{get_conn, DbPool},
}; };
use diesel::{dsl::insert_into, result::Error, ExpressionMethods, QueryDsl}; use diesel::{dsl::insert_into, result::Error, ExpressionMethods, QueryDsl};
use diesel_async::RunQueryDsl; use diesel_async::RunQueryDsl;
impl CustomEmoji { #[async_trait]
pub async fn create(pool: &mut DbPool<'_>, form: &CustomEmojiInsertForm) -> Result<Self, Error> { impl Crud for CustomEmoji {
type InsertForm = CustomEmojiInsertForm;
type UpdateForm = CustomEmojiUpdateForm;
type IdType = CustomEmojiId;
async fn create(pool: &mut DbPool<'_>, form: &Self::InsertForm) -> Result<Self, Error> {
let conn = &mut get_conn(pool).await?; let conn = &mut get_conn(pool).await?;
insert_into(custom_emoji) insert_into(custom_emoji)
.values(form) .values(form)
.get_result::<Self>(conn) .get_result::<Self>(conn)
.await .await
} }
pub async fn update(
async fn update(
pool: &mut DbPool<'_>, pool: &mut DbPool<'_>,
emoji_id: CustomEmojiId, emoji_id: Self::IdType,
form: &CustomEmojiUpdateForm, new_custom_emoji: &Self::UpdateForm,
) -> Result<Self, Error> { ) -> Result<Self, Error> {
let conn = &mut get_conn(pool).await?; let conn = &mut get_conn(pool).await?;
diesel::update(custom_emoji.find(emoji_id)) diesel::update(custom_emoji.find(emoji_id))
.set(form) .set(new_custom_emoji)
.get_result::<Self>(conn) .get_result::<Self>(conn)
.await .await
} }
pub async fn delete(pool: &mut DbPool<'_>, emoji_id: CustomEmojiId) -> Result<usize, Error> {
async fn delete(pool: &mut DbPool<'_>, id: Self::IdType) -> Result<usize, Error> {
let conn = &mut get_conn(pool).await?; let conn = &mut get_conn(pool).await?;
diesel::delete(custom_emoji.find(emoji_id)) diesel::delete(custom_emoji.find(id)).execute(conn).await
.execute(conn)
.await
} }
} }