U
    O0di,                     @   s   d dl Z d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	zd dl
Z
dZW n   d ZY nX d dlZd dlZdej_dd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  ZdS )!    N)FileMakerError   i,  c                 C   s   |  d}|dkr2d}tj}|tjtjtjd}nztj|}t	
|}d}W n   d}Y nX |dkrz |d }|d }d}|d	 }W q   |d	 }|d
 }	|d }
|d }||	|
|d}|d }d}Y qX nd}i }i }|||fS )NZpayloadDataselftest)action
serverNamedatabaseName
layoutNamer   r   fmWhatfmWherenewr   r   r   r   dataoldparameterMissing)getvaluefmInfostQuerystServer
stDatabasestLayouturllibparseunquotejsonloads)formZ
payloadRawr   r	   r
   ZpayloadCleanZformJSONZ	formErrorZ
dataSchemar   r   r    r   -/var/www/html/backup/fmpynew/fmpyfunctions.pyparseParameters,   s:    


r   c                 C   s2   t j| d tjtj| d | d dd}|  |S )Nr   r   r   F)userpassworddatabaselayout
verify_ssl)fmrestServerr   userName
myPasswordlogin)r
   fmsr   r   r   	fmConnectT   s    
r)   c              
   C   s  d| d  d | d  d | d  }t | t d |g}z|j|dd	}d
|i}d}d}d}	t |	 |D ]L}
|| }|}i }| }|D ]}|| }t |d|d qt d |d }qjW nB tk
r } z$t|}d}d}	t |	 t | W 5 d }~X Y nX dS )Nz0Selftest....<br><br>Testing connectivity to:<br>r   z<br>r   z -> r   z;<br><b>Note: Only the first 2 records are displayed</b><br>   querylimitr   r   r   z-<br><br>Test successful, server returned:<br>:z
------<br>z-<br><br>Test failed. FM Server responded:<br>z<br><br>Selftest Complete)printfindkeysr   str)r
   r	   r(   ZresultLine1
find_queryfmResultreturnArrayisuccessZresultLine2r
thisRecordkeyFieldValuefr1   keyvalue	findErrorr   r   r   r   a   s8    $r   c              
   C   s  z| d }W n   d }i }Y nX z| d }W n   d}Y nX z| d }i }W n   d}Y nX |g}z|j |dd}d}	W n* tk
r }
 z|
}d}	W 5 d }
~
X Y nX |	dkr|dkr,d}g }|D ]L}|| }i }| }|D ]}|| }|||< qd	|i}|| |d }qd
|i}t|}ng }i }d}|D ]t}|| }|dkr\|| }n|}i }| }|D ]}|| }|||< qp|d kr|||< n
|| |d }q<|d k	rd
|i}t|}|S )NcalledFromCSVkeyFieldnullfmResultRawr   i@  r+   r   	fieldDatar   )r0   r   r1   appendr   dumps)r
   r	   r(   r?   r5   r@   rB   r3   r4   r7   r>   r6   Z	dataArrayr8   r9   r;   r1   r<   r=   wrapperr:   r   r   r   	getRecord   st    














rG   c                 C   s*  d| d< t | ||}t }| d }|dkr^t }d| d }|d | d }d	| d }	n,|d
krd| d }d| d }d| d }	t|d}
|
t| |
  zt	j
|dd}d}W n   d}Y nX z|j|d d d}W n   d}Y nX t|}|d | }|	}d|kr"|S |S d S )Nr   r?   r   Windowszc:\temp\z.jsonz\files\z.csvz,https://wbv-fmr-p0004.systems.private/files/Linuxz/app/website/html/z(https://fmr-wb-p1.systems.private/files/wsplit)ZorientzRead OKz
Read Error)indexzWrite OKzWrite Error Error)rG   platformsystemosgetcwdopenwriter2   closepandasZ	read_jsonZto_csvremove)r
   r	   r(   ZtheDataZthisPlatformZ	tableName	localPathZjsonFilePathZcsvFilePathZdownloadLinkZ	text_fileZtheCSVZ
csvResult1Z
csvResult2ZdeleteMeZcsvResultErrorZcsvResultOKr   r   r   getRecordToCSV   s@    




rY   c              
   C   s>   z| |}|}W n& tk
r8 } z|}W 5 d }~X Y nX |S )N)create_recordr   )r
   r	   r(   ZrecordCreater4   createErrorr   r   r   createRecord  s    
r\   c              
   C   s   |d }|d }|  }||ig}z|j|d}d}W n& tk
r\ }	 z|	}
W 5 d }	~	X Y nX |dkr|d }|D ]$}|dkrr|dkrr|| }|||< qrz|| d}
W n& tk
r } z|}
W 5 d }~X Y nX d S )Nuuidpk)r,   r   r   z000 OK)r1   r0   r   edit)r
   r	   r(   r]   r^   r1   r3   foundsetr7   r>   r4   recordr<   r=   ZupdateErrorr   r   r   updateRecord  s(    


rb   c           
      C   sh   |  }d}|D ]R}t|}|| }z||}W n& tk
rX }	 z|	}W 5 d }	~	X Y nX |d }q|S )Nr   r   )r1   r2   rZ   r   )
r
   r	   r(   r1   r6   r<   ZiStringZaddArrayr4   r[   r   r   r   createRecordMulti+  s    
rc   c              
   C   s   |d }z|d }t |}W n   d}Y nX |d }|d }||ig}z |j|d||gid}|j}	W n* tk
r }
 z|
|f}	W 5 d }
~
X Y nX |	S )NZfmScriptfmScriptParameter r]   r^   after)r,   scripts)r   rE   r0   last_script_resultr   )r
   r	   r(   Z
scriptNamerd   r]   r^   r3   ZfoundSetr4   ZrunScriptErrorr   r   r   	runScript:  s    


ri   c                 C   s   dS )NZfoor   )r
   r	   r   r   r   saveFileL  s    rj   c                 C   s   dS )Nz	fmPy v2.5r   r
   r	   r(   r   r   r   versionO  s    rl   c                 C   s   dS )Nz4No parameter supplied, or it isn't loadable as JSON.r   rk   r   r   r   r   R  s    r   c                 C   s(   t | }t |}d| d | }|S )NzfmWhere<br>z<br><br>fmWhat<br>)r   rE   )r
   r	   r(   ZfmWhereStringZfmWhatStringreturnStringr   r   r   testU  s    

rn   c                 C   s   t d d S )NzRIP Coolio 29/09/2022)r/   rk   r   r   r   gpar[  s    ro   )requestsr#   fmrest.exceptionsr   r   cgibase64urllib.parser   rQ   rV   isPandarO   r   utilsTIMEOUTr   r)   r   rG   rY   r\   rb   rc   ri   rj   rl   r   rn   ro   r   r   r   r   <module>   s:   
("O2