
    XhB                         d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlZd dlmZ d dlZ G d	 d
      Zy)    N)Image)	AuthErrorApiError)SettingClass)HelperClass)current_user)datetime)Pathc                   ^    e Zd Zd ZddZd ZddZddZddZddZ	d	 Z
d
 Zd Zd Zd Zy)DropboxClassc                     || _         y N)db)selfr   s     M/var/www/intrajisbackend.com/public_html/app/backend/classes/dropbox_class.py__init__zDropboxClass.__init__   s	        Nc                 8   t        | j                        j                         }|j                  }t        j
                  j                  |j                        d   }	t               j                  t        |      t        |            }
t        |      t        |
      z   t        |	      z   }t        |      dz   t        |
      z   t        |	      z   }|dk(  rUt        j                  |      }|j                  d      }|j                  t        j
                  j                  |             nQt        t        j
                  j                  |      d      5 }|j!                  |j#                                d d d        t%        j&                  |j(                        }t        t        j
                  j                  |      d      5 }|j+                  |j#                         |       d d d        t        |
      t        |	      z   S # 1 sw Y   xY w# 1 sw Y   ,xY w)N   /   r   wbrb)r   r   getfileospathsplitextfilenamer   	file_namestrr   openresizesavejoinwritereaddropboxDropboxdropbox_tokenfiles_upload)r   namedescriptiondatadropbox_pathcomputer_pathr$   settingsf	extensiondropbox_file_nameimager   dbx	file_datas                  r   uploadzDropboxClass.upload   s   (,,.IIGG$$T]]3A6	'M33CIs;?OP<(3/@+AAC	NRM*S037H3IICPYNZQ;JJqMELL,EJJrww||M23bggll=148 %D

1668$% ooh445"'',,}-t4 	=	Y^^-|<	= $%I66% %	= 	=s    H!HHHc                     t        j                         }d}t        j                  |j                        }|j                  ||t        j                  j                  j                         y)Nz/business_hours/horario.pdfmoder   )	r   r   r)   r*   r+   r,   files	WriteMode	overwrite)r   	pdf_bytes	file_pathr2   r7   s        r   upload_signed_filesz DropboxClass.upload_signed_files*   sQ    ##%1	ooh445IGMM4K4K4U4UVr   c                 B   t        j                         }|d   }t        j                  j	                  |j
                        d   }	t        |      dz   t        |      z   }
t        j                         }|j                  d      }|
dz   t        |      z   |	z   }
|dk(  r_t        j                  |      }|j                  d      }|j                  t        j                  j                  |j
                               n1|j                  t        j                  j                  ||
z                ||
z   }||
z   }t        j                   |j"                        }|j%                  t        t        j                  j                  |      d      j'                         |      r|
S y)Nr   r   _z%Y_%m_%d_%H_%M_%Sr   r   r   )r   r   r   r   r   r    r"   r	   nowstrftimer   r#   r$   r%   r&   r)   r*   r+   r,   r(   )r   r-   r.   r/   r0   r1   r$   r2   r3   extesionr5   rE   formatted_dater6   r7   s                  r   upload_local_cloudzDropboxClass.upload_local_cloud2   s@   ##%L77##AJJ/2IOc+.>>lln&9:-3c.6IIHTa<JJqMELL,EJJrww||AJJ/0FF277<<0A ABC#&77%(99ooh445Dm!<dCHHJLY$$r   c                 <   t        j                         }|d   }t        j                  j	                  |j
                        d   }	t               j                  t        |      t        |            }
||
z   |	z   }||
z   |	z   }|
|	z   }
|j                  t        j                  j                  |             t        j                  |j                        }|j                  t        t        j                  j                  |      d      j!                         |      r|
S y)Nr   r   r   r   )r   r   r   r   r   r    r   r!   r"   r%   r&   r)   r*   r+   r,   r#   r(   )r   r-   r.   r/   r0   r1   r$   r2   r3   rG   r5   r7   s               r   born_documentzDropboxClass.born_documentM   s    ##%L77##AJJ/2'M33CIs;?OP#&77(B%(99HD-8	rww||M*+ooh445Dm!<dCHHJLY$$r   c                 *   t        | j                        j                         }t        j                  |j                  d      d         }d}t        j                  j                  |      st        j                  |       | d}	t        j                  j                  ||	      }
t        |
d      5 }|j                  |       d d d        ||	z   }|dz   |	z   }t        j                  |j                        }	 t        |d      5 }|j!                  |j#                         |t        j$                  j'                  d      	       d d d        |	S # 1 sw Y   xY w# 1 sw Y   |	S xY w# t(        $ r!}t+        d
t-        |              Y d }~yd }~ww xY w)N,r   pre_upload_imagesz_signature.jpgr   \r   r?   r;   z%Error al subir el archivo a Dropbox: r   )r   r   r   base64	b64decodesplitr   r   existsmakedirsr&   r#   r'   r)   r*   r+   r,   r(   r=   r>   	Exceptionprintr"   )r   r-   r.   r/   r0   r1   r2   signature_bytes
upload_dirr!   rA   r3   r7   es                 r   signzDropboxClass.sign`   s`   (,,. !**4::c?1+=> )
 ww~~j)KK
# fN+	 GGLLY7	 )T" 	%aGGO$	% $i/%,y8ooh445	mT* da  <gmm>U>UVa>b cd	% 	%d 	9#a&BC	sC   2E9E( A E	E( EE% E( %E( (	F1FFc                    t        j                         }t        j                  |j                        }dt        t        j                        z   dz   }t        t        j                  j                  dt        t        j                        z   dz         d      5 }|j                  |       d d d        |j                  ||t        j                  j                  d            rt        t        j                        dz   S y# 1 sw Y   WxY w)Nz/signature/z.pngz%app/static/dist/files/signature_data/r   r?   r;   r   )r   r   r)   r*   r+   r"   r   rutr#   r   r   r&   r'   r,   r=   r>   )r   r   r2   r7   r!   r3   s         r   	signaturezDropboxClass.signature   s    ##%ooh445!3|'7'7#88&@	"'',, G#lN^N^J_ _ag ghjno 	stGGDM	 D)'--2I2I+2VW(()611	 	s   DD
c                 ,    t        |       j                  S r   )r
   suffix)r!   s    r   get_file_extensionzDropboxClass.get_file_extension   s    I%%%r   c                 >   t        | j                        j                         }t        j                  |j
                        }	 | j                  ||      }|dk(  r4|j                  ||z          |j                  ||z         }|j                  S y# t        $ r Y yw xY wNr   r   )r   r   r   r)   r*   r+   existfiles_get_metadatafiles_get_temporary_linklinkr   )r   urlr   r2   r7   rc   rf   s          r   r   zDropboxClass.get   s    (,,.ooh445	JJsD)Ez&&sTz233C$J?yy  		s   A
B 	BBc                 @   t        | j                        j                         }t        j                  |j
                        }	 |j                  ||z         \  }}|S # t        $ r7}|j                  rt        |j                         nt        |       Y d }~yd }~ww xY w)N)zError al descargar archivoi  N)
r   r   r   r)   r*   r+   files_downloadr   user_message_textrV   )r   rg   r   r2   r7   file_metadatafile_binaryerrs           r   downloadzDropboxClass.download   s    (,,.ooh445		;),););C$J)G&M; 	;$$c++,c
:	;s   A 	B&-BBc                     t        | j                        j                         }t        j                  |j
                        }	 |j                  ||z          |j                  ||z          y# t        $ r Y yw xY wrb   )	r   r   r   r)   r*   r+   rd   files_deleter   )r   rg   r   r2   r7   s        r   deletezDropboxClass.delete   sk    (,,.ooh445	""3:.S4Z( 		s   (A- -	A98A9c                 (   |d k(  ryt        | j                        j                         }t        j                  |j
                        }	 |j                  ||z          y# t        j                  j                  $ r}t        |      cY d }~S d }~ww xY w)Nr   r   )
r   r   r   r)   r*   r+   rd   
exceptionsr   r"   )r   rg   r   r2   r7   rY   s         r   rc   zDropboxClass.exist   sv    4<#DGG,002H//("8"89C&&sTz2%%.. 1vs   
A B<
BBB) rt   Nrt   rt   r   )rt   rt   rt   rt   rt   r   )rt   rt   rt   rt   rt   )rt   )__name__
__module____qualname__r   r9   rB   rI   rK   rZ   r]   r`   r   rn   rq   rc    r   r   r   r      s?    726&#L&&;"r   r   )r)   PILr   dropbox.exceptionsr   r   !app.backend.classes.setting_classr    app.backend.classes.helper_classr   flask_loginr   r	   r   pathlibr
   rP   r   rx   r   r   <module>r      s/      2 : 8 $  	  L Lr   