3 schema::tagline::dsl::{local_site_id, tagline},
4 source::tagline::{Tagline, TaglineForm},
5 utils::{get_conn, DbPool},
7 use diesel::{insert_into, result::Error, ExpressionMethods, QueryDsl};
8 use diesel_async::{AsyncPgConnection, RunQueryDsl};
12 pool: &mut DbPool<'_>,
13 for_local_site_id: LocalSiteId,
14 list_content: Option<Vec<String>>,
15 ) -> Result<Vec<Self>, Error> {
16 let conn = &mut get_conn(pool).await?;
17 if let Some(list) = list_content {
22 Self::clear(conn).await?;
25 let form = TaglineForm {
26 local_site_id: for_local_site_id,
32 .get_result::<Self>(conn)
35 Self::get_all(&mut conn.into(), for_local_site_id).await
40 Self::get_all(&mut conn.into(), for_local_site_id).await
44 async fn clear(conn: &mut AsyncPgConnection) -> Result<usize, Error> {
45 diesel::delete(tagline).execute(conn).await
49 pool: &mut DbPool<'_>,
50 for_local_site_id: LocalSiteId,
51 ) -> Result<Vec<Self>, Error> {
52 let conn = &mut get_conn(pool).await?;
54 .filter(local_site_id.eq(for_local_site_id))
55 .get_results::<Self>(conn)