+use crate::structs::CommunityBlockView;
use diesel::{result::Error, *};
-use lemmy_db_queries::{ToSafe, ViewToVec};
use lemmy_db_schema::{
+ newtypes::PersonId,
schema::{community, community_block, person},
source::{
community::{Community, CommunitySafe},
person::{Person, PersonSafe},
},
- PersonId,
+ traits::{ToSafe, ViewToVec},
};
-use serde::{Deserialize, Serialize};
-
-#[derive(Debug, Serialize, Deserialize, Clone)]
-pub struct CommunityBlockView {
- pub person: PersonSafe,
- pub community: CommunitySafe,
-}
type CommunityBlockViewTuple = (PersonSafe, CommunitySafe);
impl CommunityBlockView {
- pub fn for_person(conn: &PgConnection, person_id: PersonId) -> Result<Vec<Self>, Error> {
+ pub fn for_person(conn: &mut PgConnection, person_id: PersonId) -> Result<Vec<Self>, Error> {
let res = community_block::table
.inner_join(person::table)
.inner_join(community::table)
type DbTuple = CommunityBlockViewTuple;
fn from_tuple_to_vec(items: Vec<Self::DbTuple>) -> Vec<Self> {
items
- .iter()
+ .into_iter()
.map(|a| Self {
- person: a.0.to_owned(),
- community: a.1.to_owned(),
+ person: a.0,
+ community: a.1,
})
.collect::<Vec<Self>>()
}