3 source::person_block::{PersonBlock, PersonBlockForm},
6 use diesel::{dsl::*, result::Error, *};
11 for_person_id: PersonId,
12 for_recipient_id: PersonId,
13 ) -> Result<Self, Error> {
14 use crate::schema::person_block::dsl::*;
16 .filter(person_id.eq(for_person_id))
17 .filter(target_id.eq(for_recipient_id))
22 impl Blockable for PersonBlock {
23 type Form = PersonBlockForm;
24 fn block(conn: &PgConnection, person_block_form: &PersonBlockForm) -> Result<Self, Error> {
25 use crate::schema::person_block::dsl::*;
26 insert_into(person_block)
27 .values(person_block_form)
28 .on_conflict((person_id, target_id))
30 .set(person_block_form)
31 .get_result::<Self>(conn)
33 fn unblock(conn: &PgConnection, person_block_form: &Self::Form) -> Result<usize, Error> {
34 use crate::schema::person_block::dsl::*;
37 .filter(person_id.eq(person_block_form.person_id))
38 .filter(target_id.eq(person_block_form.target_id)),