�
Ch� � �T � d dl mZmZmZ d dlmZmZmZmZm Z m
Z
mZmZ G d� d� Z
y)� )�List�Dict�Optional)�Grabba�Job� JobResult�GetJobResponse�GetJobsResponse�JobExecutionStatus�GetJobResultResponse�JobExecutionResponsec �� � e Zd Zdefd�Zdedeeee f fd�Z dedeeee f fd�Z
deeeee f fd�Zdedeeee f fd �Z
dedeed
f fd�Zdedeeee f fd
�Zdedeed
f fd�Zy
)�
GrabbaService�api_keyc �$ � t |� | _ y )N)r �grabba)�selfr s �M/home/obaa/Documents/projects/grabba/v2/apps/mcp/grabba_mcp/grabba_service.py�__init__zGrabbaService.__init__ s
� ��W�o��� �extraction_data�returnc � �. K � | j j |�� }|j t j k( r|j
}|j |fS |j |j
fS # t $ r}dt |� � �dfcY d}~S d}~ww xY w�w)z"Schedule a new data extraction job)�job�Error scheduling job: N) r �extract�statusr �SUCCESS�
job_result�message� Exception�str)r r �resultr �errs r �extract_datazGrabbaService.extract_data s� � �� � =�+/�;�;�+>�+>�?�+>�+S�F��}�}� 2� :� :�:�(.�(9�(9�
��~�~�z�1�1��>�>�6�#4�#4�4�4��� =�+�C��H�:�6��<�<�� =�sA �B�AA/ �B�A/ �.B�/ B�8B
�B�B�
B�B�job_idc � �� K � | j j |�� }|j |j fS # t $ r}dt |� � �dfcY d}~S d}~ww xY w�w)z+Schedule an existing job to run immediately)r&