
    Pg                     @    d dl mZmZ d dlmZ d Zd Zd Zd Zd Z	dS )	    )requestjsonify)get_db_connectionc                  p   t           j                            d          } t           j                            dd          }| st          ddi          dfS 	 t	                      }|                    d          }d	}| | | | g}|d
v r|dz  }|                    |           |                    ||           |                                }|	                                 |	                                 t          |          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nuser_idfilterallerrorzMissing user_id  T)
dictionarya@  
            SELECT f.id, f.user_id_1, f.user_id_2, f.status,
                CASE
                    WHEN f.user_id_1 = %s THEN u2.username
                    ELSE u1.username
                END AS friend_username,
                CASE
                    WHEN f.user_id_1 = %s THEN u2.display_name
                    ELSE u1.display_name
                END AS friend_display
            FROM friendships f
            JOIN users u1 ON u1.id = f.user_id_1
            JOIN users u2 ON u2.id = f.user_id_2
            WHERE (f.user_id_1 = %s OR f.user_id_2 = %s)
        )acceptedpendingblockedz AND f.status = %s  )r   argsgetr   r   cursorappendexecutefetchallclose	Exceptionstr)r   	filter_byconnr   queryvaluesresultses           8/var/www/wisegym.app/api/functions/friendship_service.pyget_friendsr!      sI   ly))G  511I :!2344c99"/ ""--  7GW5:::))EMM)$$$uf%%%//##

w / / /Q())3......./s   B*D 
D5D0*D50D5c                  R   t           j        } |                     d          }|                     d          }|r|st          ddi          dfS 	 t	                      }|                                }|                    dt          ||          t          ||          f           |	                                 |
                                 |
                                 t          ddi          S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   	friend_idr
   Missing user_id or friend_idr   z
            INSERT INTO friendships (user_id_1, user_id_2, status)
            VALUES (%s, %s, 'pending')
            ON DUPLICATE KEY UPDATE status = 'pending'
        messagezFriend request sentr   r   jsonr   r   r   r   r   minmaxcommitr   r   r   datar   r#   r   r   r   s         r    send_friend_requestr-   .   s7   <Dhhy!!G%%I G) G!?@AA3FF/ ""  '9%%s7I'>'>?		A 	A 	A
 	

	#89::: / / /Q())3......./   B"C2 2
D&<D!D&!D&c                     t           j        } |                     d          }|                     d          }|r|st          ddi          dfS 	 t	                      }|                                }|                    d||||f           |                                 |                                 |                                 t          ddi          S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   r#   r
   r$   r   z
            UPDATE friendships SET status = 'accepted'
            WHERE user_id_1 = %s AND user_id_2 = %s
               OR user_id_1 = %s AND user_id_2 = %s
        r%   zFriend request acceptedr   r   r'   r   r   r   r   r   r*   r   r   r   r+   s         r    accept_friend_requestr1   D   s$   <Dhhy!!G%%I G) G!?@AA3FF/ ""  y)W5		7 	7 	7
 	

	#<=>>> / / /Q())3......./   BC 
D"DDDc                  R   t           j        } |                     d          }|                     d          }|r|st          ddi          dfS 	 t	                      }|                                }|                    dt          ||          t          ||          f           |	                                 |
                                 |
                                 t          ddi          S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   r#   r
   r$   r   z
            INSERT INTO friendships (user_id_1, user_id_2, status)
            VALUES (%s, %s, 'blocked')
            ON DUPLICATE KEY UPDATE status = 'blocked'
        r%   zUser blockedr   r&   r+   s         r    block_friendr4   Z   s6   <Dhhy!!G%%I G) G!?@AA3FF/ ""  '9%%s7I'>'>?		A 	A 	A
 	

	>2333 / / /Q())3......./r.   c                     t           j        } |                     d          }|                     d          }|r|st          ddi          dfS 	 t	                      }|                                }|                    d||||f           |                                 |                                 |                                 t          ddi          S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   r#   r
   r$   r   z
            DELETE FROM friendships
            WHERE (user_id_1 = %s AND user_id_2 = %s)
               OR (user_id_1 = %s AND user_id_2 = %s)
        r%   zFriendship removedr   r0   r+   s         r    remove_friendr6   p   s$   <Dhhy!!G%%I G) G!?@AA3FF/ ""  y)W5		7 	7 	7
 	

	#78999 / / /Q())3......./r2   N)
flaskr   r   	db_configr   r!   r-   r1   r4   r6        r    <module>r;      s    " " " " " " " " ' ' ' ' ' '(/ (/ (/T/ / /,/ / /,/ / /,/ / / / /r:   