
    h                          d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	  eddg      Z
e
j                  d      d	 ee      fd
ededefd       Zy)    )	APIRouterDependsHTTPException)Session)get_db)ScrapperClassz
/scrappers	scrappers)prefixtagsz/customer_data/{rut}Frutforce_seleniumdbc           	         	 d| vrdddddS | j                  d      }t        |      dk7  rdddddS |d	   j                         }|d
   j                         }|j                         sdddddS t        |      d
k7  s#|j                         s|j	                         dk(  sdddddS t        |      }| }|j                  |||      }|r)|j                  d      rdd|j                  dd      d|dS dd|j                  dd      |j                  dd      |j                  d|       |j                  dd      dS # t        $ r}	ddt        |	      d dcY d!}	~	S d!}	~	ww xY w)"ae  
    Get customer data from SII using external API (no captcha required)
    
    Args:
        rut (str): Complete RUT with verification digit (e.g., "76063822-6")
        force_selenium (bool): Force use of Selenium instead of API (default: False)
        db (Session): Database session
    
    Returns:
        dict: Customer data obtained from SII
    -Fz*Invalid RUT format. Use format: 12345678-9z!RUT must contain hyphen separatorvalidation_error)successmessageerrormethod   z RUT must have exactly one hyphenr      z,Invalid RUT number. Must contain only digitszRUT number must be numericKz,Invalid verification digit. Must be 0-9 or Kz,Verification digit must be single digit or K)use_api_firstr   TzData obtained successfullyr   external_api)r   r   r   captcha_requireddatazCould not obtain customer datar   zUnknown errorunknownrut_consultedrecommendationz$Check connectivity with external API)r   r   r   r   r   r   zInternal server errorinternal_errorN)
splitlenstripisdigitupperr   get_customer_dataget	Exceptionstr)
r   r   r   	rut_parts
rut_numberverification_digitscrapperr   resultes
             I/var/www/intrajisbackend.com/public_html/app/backend/routers/scrappers.pyr&   r&      s   "G
c> G<,	  IIcN	y>Q G;,	  q\'')
&q\//1 !!# I5,	  !"a'0B0J0J0LPbPhPhPjnqPq IG,	  !$ +*++J8JZg+hfjj+7 **X~>$)  !;G_= **Xy9!'OS!A"(**-=?e"f   
.V&	
 	

s;   
D> %D> <D> 07D> (AD> 5AD> >	E!EE!E!N)fastapir   r   r   sqlalchemy.ormr   app.backend.db.databaser   "app.backend.classes.scrapper_classr   routerr'   r)   boolr&        r0   <module>r9      si    5 5 " * <	,k]	;"# !&/W
	W
W
 	W
 $W
r8   