2626from typing import Optional
2727
2828import Geohash
29+ from PyMatcha .models .image import Image
2930from PyMatcha .models .like import Like
3031from PyMatcha .models .match import Match
3132from PyMatcha .models .message import Message
@@ -182,6 +183,7 @@ def register(email: str, username: str, password: str, first_name: str, last_nam
182183 def to_dict (self ) -> Dict :
183184 returned_dict = super ().to_dict ()
184185 returned_dict ["tags" ] = [t .to_dict () for t in self .get_tags ()]
186+ returned_dict ["images" ] = [image .to_dict () for image in self .get_images ()]
185187 returned_dict ["reports" ] = {"sent" : [], "received" : []}
186188 returned_dict ["reports" ]["sent" ] = [r .to_dict () for r in self .get_reports_sent ()]
187189 returned_dict ["reports" ]["received" ] = [r .to_dict () for r in self .get_reports_received ()]
@@ -205,128 +207,61 @@ def get_jwt_info(self):
205207 "date_lastseen" : self .date_lastseen ,
206208 }
207209
210+ def get_images (self ):
211+ logging .debug ("Getting all images for user {}" .format (self .id ))
212+ image_list = Image .get_multis (user_id = self .id )
213+ if not image_list :
214+ return []
215+ else :
216+ return image_list
217+
208218 def get_tags (self ):
209219 logging .debug ("Getting all tags for user {}" .format (self .id ))
210- with self .db .cursor () as c :
211- c .execute (
212- """
213- SELECT tags.id as id, tags.user_id as user_id, tags.name as name
214- FROM users
215- INNER JOIN tags on users.id = tags.user_id
216- WHERE users.id = CAST({} AS UNSIGNED)
217- """ .format (
218- self .id
219- )
220- )
221- tags = c .fetchall ()
222- tags_list = []
223- for t in tags :
224- tags_list .append (Tag (t ))
225- return tags_list
220+ tag_list = Tag .get_multis (user_id = self .id )
221+ if not tag_list :
222+ return []
223+ else :
224+ return tag_list
226225
227226 def get_views (self ):
228227 logging .debug ("Getting all views for user profile {}" .format (self .id ))
229- with self .db .cursor () as c :
230- c .execute (
231- """
232- SELECT views.id as id, views.profile_id as profile_id,
233- views.viewer_id as viewer_id, views.dt_seen as dt_seen
234- FROM users
235- INNER JOIN views on users.id = views.profile_id
236- WHERE users.id = CAST({} AS UNSIGNED)
237- """ .format (
238- self .id
239- )
240- )
241- views = c .fetchall ()
242- views_list = []
243- for v in views :
244- views_list .append (View (v ))
245- return views_list
228+ view_list = View .get_multis (profile_id = self .id )
229+ if not view_list :
230+ return []
231+ else :
232+ return view_list
246233
247234 def get_reports_received (self ):
248235 logging .debug ("Getting all reports received for user {}" .format (self .id ))
249- with self .db .cursor () as c :
250- c .execute (
251- """
252- SELECT reports.id as id, reports.reported_id as reported_id,
253- reports.reporter_id as reporter_id, reports.dt_reported as dt_reported,
254- reports.details as details, reports.reason as reason, reports.status as status
255- FROM users
256- INNER JOIN reports on users.id = reports.reported_id
257- WHERE users.id = CAST({} AS UNSIGNED)
258- """ .format (
259- self .id
260- )
261- )
262- reports = c .fetchall ()
263- reports_list = []
264- for r in reports :
265- reports_list .append (Report (r ))
266- return reports_list
236+ reports_received_list = Report .get_multis (reported_id = self .id )
237+ if not reports_received_list :
238+ return []
239+ else :
240+ return reports_received_list
267241
268242 def get_reports_sent (self ):
269243 logging .debug ("Getting all reports sent for user {}" .format (self .id ))
270- with self .db .cursor () as c :
271- c .execute (
272- """
273- SELECT reports.id as id, reports.reported_id as reported_id,
274- reports.reporter_id as reporter_id, reports.dt_reported as dt_reported,
275- reports.details as details, reports.reason as reason, reports.status as status
276- FROM users
277- INNER JOIN reports on users.id = reports.reporter_id
278- WHERE users.id = CAST({} AS UNSIGNED)
279- """ .format (
280- self .id
281- )
282- )
283- reports = c .fetchall ()
284- reports_list = []
285- for r in reports :
286- reports_list .append (Report (r ))
287- return reports_list
244+ reports_sent_list = Report .get_multis (reporter_id = self .id )
245+ if not reports_sent_list :
246+ return []
247+ else :
248+ return reports_sent_list
288249
289250 def get_likes_received (self ):
290251 logging .debug ("Getting all likes received for user {}" .format (self .id ))
291- with self .db .cursor () as c :
292- c .execute (
293- """
294- SELECT likes.id as id, likes.liked_id as liked_id,
295- likes.liker_id as liker_id, likes.dt_liked as dt_liked,
296- likes.is_superlike as is_superlike
297- FROM users
298- INNER JOIN likes on users.id = likes.liked_id
299- WHERE users.id = CAST({} AS UNSIGNED)
300- """ .format (
301- self .id
302- )
303- )
304- likes = c .fetchall ()
305- like_list = []
306- for like in likes :
307- like_list .append (Like (like ))
308- return like_list
252+ likes_received_list = Like .get_multis (liked_id = self .id )
253+ if not likes_received_list :
254+ return []
255+ else :
256+ return likes_received_list
309257
310258 def get_likes_sent (self ):
311259 logging .debug ("Getting all likes sent for user {}" .format (self .id ))
312- with self .db .cursor () as c :
313- c .execute (
314- """
315- SELECT likes.id as id, likes.liked_id as liked_id,
316- likes.liker_id as liker_id, likes.dt_liked as dt_liked,
317- likes.is_superlike as is_superlike
318- FROM users
319- INNER JOIN likes on users.id = likes.liker_id
320- WHERE users.id = CAST({} AS UNSIGNED)
321- """ .format (
322- self .id
323- )
324- )
325- likes = c .fetchall ()
326- like_list = []
327- for like in likes :
328- like_list .append (Like (like ))
329- return like_list
260+ likes_sent_list = Like .get_multis (liker_id = self .id )
261+ if not likes_sent_list :
262+ return []
263+ else :
264+ return likes_sent_list
330265
331266 def already_likes (self , liked_id : int ) -> bool :
332267 with self .db .cursor () as c :
0 commit comments