📄 tasks_db.cpython-312.pyc
/home/palash/git/local-ai/server/features/__pycache__/tasks_db.cpython-312.pyc
Language: pyc • Lines: 221
�

քj����dZddlZddlZddlZddlZddlmZddlmZej�Z	d�Z
dd�Zdd�Zdd�Z
					dd	�Zd
�Zd�Zd�Zdd
�Zd�Zd�Zy)zKSQLite-backed to-do tasks used by the ``manage_tasks`` tool and /api/tasks.�N)�datetime)�Mc���t5tjtj�}|jd�|j
�|j�ddd�y#1swYyxYw)Na$
            CREATE TABLE IF NOT EXISTS tasks (
                id TEXT PRIMARY KEY,
                user_id TEXT NOT NULL,
                title TEXT NOT NULL,
                description TEXT DEFAULT '',
                status TEXT DEFAULT 'pending',
                priority TEXT DEFAULT 'medium',
                due_date TEXT,
                session_id TEXT,
                created_at TEXT NOT NULL,
                updated_at TEXT NOT NULL,
                reminder_at TEXT,
                reminded INTEGER DEFAULT 0
            )
        )�_tasks_db_lock�sqlite3�connectr�TASKS_DB�execute�commit�close)�conns �5/home/palash/git/local-ai/server/features/tasks_db.py�_init_tasks_dbrsQ��	�����q�z�z�*�����
�	
�$	
���
��
�
��+���s�AA%�%A.c�(�t5tjtj�}	|j||�}|j
�|j|j�cddd�S#|j�wxYw#1swYyxYw�N)	rrrrr	r
r�rowcountr)�query�paramsr
�curs    r�_db_runr'sl��	�����q�z�z�*��	��,�,�u�f�-�C��K�K�M��<�<��J�J�L����
�J�J�L����s"�$B�-A3�B�3B�B�Bc�t�t5tjtj�}tj
|_	|j||�}|j�D�cgc]
}t|���}}||j�cddd�Scc}w#|j�wxYw#1swYyxYwr)rrrrr	�Row�row_factoryr
�fetchall�dictr)rrr
r�r�rowss      r�	_db_fetchr2s���	�����q�z�z�*��"�;�;���	��,�,�u�f�-�C�%(�\�\�^�4��D��G�4�D�4���J�J�L����
5��
�J�J�L����s5�9B.�$B�%B�7B�:B.�B�B+�+B.�.B7c�@�tj||�}|r|dSdS)Nr�rr)rrrs   r�
_db_fetch_oner!>s#���;�;�u�f�%�D��4��7�$��$�c���ttj��}tj�j�}t
jd||||d||||||f�t
jd|f�S)Nz�INSERT INTO tasks (id, user_id, title, description, status, priority, due_date, session_id, created_at, updated_at, reminder_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)�pending�SELECT * FROM tasks WHERE id=?)	�str�uuid�uuid4r�now�	isoformatrrr!)	�user_id�title�description�priority�due_date�
session_id�reminder_at�tidr)s	         r�task_creater3Csv���d�j�j�l�
�C�
�,�,�.�
"�
"�
$�C��I�I�	j������������	
�� 
�?�?�;�c�V�D�Dr"c�x�|j�D��cic]\}}|��	||��
}}}|sytj�j�|d<dj	d�|D��}t|j
��||gz}tjd|�d�|�tjd|f�Scc}}w)N�
updated_atz, c3�&K�|]	}|�d����y�w)z=?N�)�.0�ks  r�	<genexpr>ztask_update.<locals>.<genexpr>fs����4��a�S��8�4�s�zUPDATE tasks SET z WHERE id=? AND user_id=?r%)
�itemsrr)r*�join�list�valuesrrr!)r2r+�kwargsr9�v�fields�
set_clause�valss        r�task_updaterDas���%�|�|�~�
?�t�q�!���a��d�
?�F�
?���#�<�<�>�3�3�5�F�<�����4�V�4�4�J���
�
�� �C��>�1�D��I�I�!�*��-F�G��N��?�?�;�c�V�D�D��@s
�
B6�B6c��tj�j�}tjd|||f�tj
d|f�S)NzJUPDATE tasks SET status='completed', updated_at=? WHERE id=? AND user_id=?r%)rr)r*rrr!)r2r+r)s   r�
task_completerFlsE��
�,�,�.�
"�
"�
$�C��I�I�T�	�c�7���
�?�?�;�c�V�D�Dr"c�2�tjd||f�S)Nz*DELETE FROM tasks WHERE id=? AND user_id=?)rr�r2r+s  r�task_deleterIus���9�9�A�C��>�R�Rr"c�d�|rtjd||f�Stjd|f�S)NziSELECT * FROM tasks WHERE user_id=? AND status=? ORDER BY due_date IS NULL, due_date ASC, created_at DESCz\SELECT * FROM tasks WHERE user_id=? ORDER BY due_date IS NULL, due_date ASC, created_at DESCr )r+�statuss  r�	task_listrLys<��
��{�{�w�
�f��
�	
�
�;�;�f�	�
��r"c�2�tjd||f�S)Nz,SELECT * FROM tasks WHERE id=? AND user_id=?)rr!rHs  r�task_getrN�s���?�?�6��g���r"c��|jdd�}|dk(r�|jd�stjddd��St||d|jdd�|jd	d
�|jd�|jd�|jd
��}tjd|d��S|dv�rx|jd�}|stjddd��S|dk(r�t	|||jd�|jd�|jd	�|jd�|jd�|jd
���}|rtjd|d��Stjddd��S|dk(r>t||�}|rtjd|d��Stjddd��S|dk(r#t
||�tjddi�St||�}|rtjd|d��Stjddd��S|dk(r3t||jd��}tjd|d��Stjdd|��d��S)N�	operation��creater,Fz Missing required argument: title)�ok�errorr-r.�mediumr/r0r1T)rS�task)�update�complete�delete�get�task_idz"Missing required argument: task_idrWrK)r,r-r.rKr/r1zTask not foundrXrYrSr=)rS�taskszUnknown operation: )	rZ�json�dumpsr3rDrFrIrNrL)r+�args�op�tr2r\s      r�handle_task_toolrb�sO��	
���+�r�	"�B�	�X�~��x�x�� ��:�:�U�5W�X�Y�Y�����M��H�H�]�B�'��H�H�Z��*��H�H�Z� ��H�H�\�"��H�H�]�#�
���z�z��q�1�2�2�	�6�	6��h�h�y�!����:�:��)K�M��
���>�����h�h�w�'� �H�H�]�3����*�-��x�x��)����*�-� �H�H�]�3�	�A���z�z��q�"9�:�:��:�:�U�5E�F�G�G�
�:�
��c�7�+�A���z�z��q�"9�:�:��:�:�U�5E�F�G�G�
�8�^���W�%��:�:�t�T�l�+�+���g�&�A���z�z��q�"9�:�:��:�:�U�5E�F�G�G�	�v���'�4�8�8�H�#5�6���z�z���6�7�7��:�:�U�/B�2�$�-G�H�I�Ir")r7)rQrUNNNr)�__doc__r]r�	threadingr'r�server.features.stater�Lockrrrrr!r3rDrFrIrLrNrbr7r"r�<module>rgsu��Q������#�����!���2�	�%��
�
���E�<E�E�S�	��3Jr"