
    h                        d dl mZ d dlmZmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZmZ  e            Ze                    de           e	d	           e	d
	          fdd            ZdS )    )annotations)AnyDictList)	APIRouterRequestQuery)HTMLResponse)	templatessbloggerz/gov/search)response_classall)default requestr   srcstrqc                  
K   |pd                                 }g }|st          j        d| |||d          S 	 t          j        d                              d          }|dv r|                    d|          }d| d}|                    d	| d
| d| d| d| 
          }|                    d          	                                j
        pg }n# t          $ r}t          j        d| d           	 t          j        d                              d          }|dv r|                    d|          }|                    d          	                                j
        pg }	|                                fd

fd|	D             }n# t          $ r g }Y nw xY wY d }~nd }~ww xY w|                    d            t          j        d| |||d          S )Nr   zgov/search.html)r   r   r   rows	gov_staffz*source,department,position,name,phone,task)MOTIEMOEFsource%zname.ilike.z,department.ilike.z,position.ilike.z,task.ilike.z,phone.ilike.i  z#gov_staff search fallback (reason: )i  c                >     t           fddD                       S )Nc              3  p   K   | ]0}                     |d           pd                                 v V  1dS )r   N)getlower).0fkeyrs     -/var/www/html/bot/app/web/pages/gov/search.py	<genexpr>z*gov_search.<locals>.hit.<locals>.<genexpr>    sE      xx13155B<<#52"<"<">">>xxxxxx    )name
departmentpositiontaskphone)any)r%   r$   s   `r&   hitzgov_search.<locals>.hit   s+    xxxxxHwxxxxxxr(   c                *    g | ]} |          |S  r1   )r"   r%   r/   s     r&   
<listcomp>zgov_search.<locals>.<listcomp>!   s&    ...!ss1vv.A...r(   c                b    |                      dd          pd|                      dd          pdfS )Nr*   r   r)   )r    )r%   s    r&   <lambda>zgov_search.<locals>.<lambda>%   s2    QUU<44:AEE&"<M<M<SQST r(   )r$   )stripr   TemplateResponser   tableselecteqor_limitexecutedata	Exceptionr   warningr!   sort)r   r   r   q_normr   querykweq2r=   r/   r$   s             @@r&   
gov_searchrF   	   sK     g2__F!#D z)*;Y\cisw=x=xyyy%%,,-YZZ###HHXs++E]]]		wwwbwwRTwwbdwwsuwwxx{{4  ((**/52   AQAAABBB
	+&&--.Z[[B'''UU8S))HHTNN**,,18bD,,..Cy y y y y....t...DD 	 	 	DDD	 	IITTIUUU%&7WUX_eos9t9tuuus=   BC 
F*F%7BFF%FF%FF%%F*N)r   r   r   r   r   r   )
__future__r   typingr   r   r   fastapir   r   r	   fastapi.responsesr
   app.web.depsr   r   r   routerr    rF   r1   r(   r&   <module>rM      s    " " " " " " " " " " " " " " " " - - - - - - - - - - * * * * * * . . . . . . . . . .	M,7727%2F2F2FQVQV_aQbQbQb v v v v 87v v vr(   