2 newtypes::CustomEmojiId,
4 custom_emoji::dsl::custom_emoji,
5 custom_emoji_keyword::dsl::{custom_emoji_id, custom_emoji_keyword},
8 custom_emoji::{CustomEmoji, CustomEmojiInsertForm, CustomEmojiUpdateForm},
9 custom_emoji_keyword::{CustomEmojiKeyword, CustomEmojiKeywordInsertForm},
11 utils::{get_conn, DbPool},
13 use diesel::{dsl::insert_into, result::Error, ExpressionMethods, QueryDsl};
14 use diesel_async::RunQueryDsl;
17 pub async fn create(pool: &DbPool, form: &CustomEmojiInsertForm) -> Result<Self, Error> {
18 let conn = &mut get_conn(pool).await?;
19 insert_into(custom_emoji)
21 .get_result::<Self>(conn)
26 emoji_id: CustomEmojiId,
27 form: &CustomEmojiUpdateForm,
28 ) -> Result<Self, Error> {
29 let conn = &mut get_conn(pool).await?;
30 diesel::update(custom_emoji.find(emoji_id))
32 .get_result::<Self>(conn)
35 pub async fn delete(pool: &DbPool, emoji_id: CustomEmojiId) -> Result<usize, Error> {
36 let conn = &mut get_conn(pool).await?;
37 diesel::delete(custom_emoji.find(emoji_id))
43 impl CustomEmojiKeyword {
46 form: Vec<CustomEmojiKeywordInsertForm>,
47 ) -> Result<Vec<Self>, Error> {
48 let conn = &mut get_conn(pool).await?;
49 insert_into(custom_emoji_keyword)
51 .get_results::<Self>(conn)
54 pub async fn delete(pool: &DbPool, emoji_id: CustomEmojiId) -> Result<usize, Error> {
55 let conn = &mut get_conn(pool).await?;
56 diesel::delete(custom_emoji_keyword.filter(custom_emoji_id.eq(emoji_id)))