@@ -4,9 +4,12 @@ use super::{PaginatedModel, DB};
44use crate :: schema:: group_members;
55use crate :: schema:: groups:: dsl;
66use chrono:: NaiveDateTime ;
7+ use diesel:: debug_query;
78use diesel:: dsl:: count_star;
9+ use diesel:: pg:: Pg ;
810use diesel:: prelude:: * ;
911use diesel:: { associations:: HasTable , dsl:: not} ;
12+ use log:: info;
1013use serde:: { Deserialize , Serialize } ;
1114
1215#[ derive( diesel_derive_enum:: DbEnum , Debug , Clone , Deserialize , Serialize , PartialEq ) ]
@@ -127,7 +130,7 @@ impl GroupRepository {
127130 }
128131 }
129132
130- /// Gets all groups a user is member or tutor of
133+ /// Gets all groups a user is no member or tutor of
131134 pub fn get_groups_for_not_member (
132135 member_id : i32 ,
133136 page : i64 ,
@@ -139,17 +142,21 @@ impl GroupRepository {
139142 . map ( |x| x. group_id )
140143 . collect ( ) ;
141144
142- let base_predicate = not ( dsl:: tutor
143- . eq ( member_id)
144- . or ( dsl:: id. eq_any ( requested) )
145- . or ( group_members:: dsl:: member_id. eq ( member_id) ) ) ;
145+ let base_predicate = not ( dsl:: tutor. eq ( member_id) . or ( dsl:: id. eq_any ( requested) ) . or (
146+ group_members:: dsl:: member_id
147+ . eq ( member_id)
148+ . and ( group_members:: dsl:: group_id. is_not_null ( ) ) ,
149+ ) ) ;
146150
147151 let total_base_query = dsl:: groups
148152 . left_join ( group_members:: dsl:: group_members)
149153 . select ( count_star ( ) )
150154 . filter ( base_predicate. clone ( ) )
151155 . into_boxed ( ) ;
152156
157+ let sql_string = debug_query :: < Pg , _ > ( & total_base_query) . to_string ( ) ;
158+ println ! ( "{}" , sql_string) ;
159+
153160 let total = match search. clone ( ) {
154161 None => total_base_query
155162 . get_result :: < i64 > ( conn)
@@ -177,7 +184,8 @@ impl GroupRepository {
177184 . load :: < Group > ( conn) ,
178185 } ;
179186
180- if results. is_err ( ) {
187+ if let Err ( e) = results {
188+ info ! ( "Error from database: {}" , e) ;
181189 return PaginatedModel {
182190 total : 0 ,
183191 results : vec ! [ ] ,
0 commit comments