U
    Vc                     @   s8   d dl T d dlmZmZ d dlmZ G dd deZdS )    )*)BaseDataDriverMapper)RDiskc                   @   s   e Zd ZdddddZd,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"d# Zd$d% Zd&d' Zd(d) Zd*d+ ZdS )-RDiskDataDriverN)	ds_confignamec                O   s   || _ |d | _|| _d S )Nuri)Zconfigr	   r   )selfr   r   _args_kwargs r   $./modules/rdisk/data_driver/rdisk.py__init__   s    
zRDiskDataDriver.__init__.c                 C   s(   |dkrt jd}t|| jtj S )N.access_token)requestcookiesgetr   r	   APPrsa_public_key
export_key)r
   r   r   r   r   get_rd    s      zRDiskDataDriver.get_rdc                 O   s   | dd}|  }|r"|d }n$| drB|d }|d d }ntt|tjjrZ|j}|jj	||d}|srd S | d}	t
 j||	|d}
d	D ]"}||	krt|
|j|	| d
 q|
S )NmkdirFr   filter   )r   full_fields_load)r   modelparentparentschildrenfields)r   r   NotImplementedError
isinstanceZcmfr"   ZCmfTypevaluerootfind_child_by_idr   Zobject_to_cmfgetattrload)r
   r   argskwargsr   rdZ_id_filterobjfflZmobj
field_namer   r   r   r   .   s&    


zRDiskDataDriver.getc                 O   sH   |   }|jj}|j|}||jj|jj}|j|j_	|j
|j
_	d S N)r   	parent_idr%   r&   r'   Z	add_childr   is_dirid_valueperm_str)r
   instancer*   r+   r,   r2   Zparent_fr.   r   r   r   createO   s    
zRDiskDataDriver.createc                 O   s$   |   }|j|jj}|  |S r1   )r   r&   r'   r4   r%   deleter
   r7   r*   r+   r,   r.   r   r   r   r9   [   s    zRDiskDataDriver.deletec                 O   s&   |   }|j|jj}|jj|_|S r1   )r   r&   r'   r4   r%   r6   r:   r   r   r   updatea   s    
zRDiskDataDriver.updatec                 O   s   t tjd| jtj }|d }|d d dkr|d d }|j	|}|d}|j
s`g S t j|j
||d}	i }
dD ]}||kr||| |
|< q||
r|	D ](}|
 D ]\}}t||j|d	 qq|	S td S )
Nr   r   r   r2   r   r   )r   r   r!   )r   r   r   r   r	   r   r   r   r&   r'   r    r   Zlist_to_cmfitemsr(   r)   r#   )r
   r   r*   r+   r,   r-   r2   Zrfr/   Zobj_listZload_fieldsr0   r.   Z	field_fflr   r   r   listg   s&    
zRDiskDataDriver.listc                 O   s   |   }|||}|jS r1   )r   create_rfile_from_templater4   )r
   dirnamefilenamer*   r+   r,   resr   r   r   r>   }   s    z*RDiskDataDriver.create_rfile_from_templatec                 O   s&   |   }|j|jj}|| d S r1   )r   r&   r'   r4   r%   rename)r
   r7   Z	target_idr*   r+   r,   r.   r   r   r   rB      s    zRDiskDataDriver.renamec                 C   s   d S r1   r   r
   r   r   r   commit   s    zRDiskDataDriver.commitc                 C   s   d S r1   r   rC   r   r   r   rollback   s    zRDiskDataDriver.rollbackc                 C   s   d S r1   r   rC   r   r   r   before_request   s    zRDiskDataDriver.before_requestc                 C   s   d S r1   r   rC   r   r   r   before_first_request   s    z$RDiskDataDriver.before_first_requestc                 C   s   d S r1   r   )r
   	cmf_modelr   r   r   dp_model   s    zRDiskDataDriver.dp_modelc                 C   s   d S r1   r   )r
   Zsa_modelr   r   r   rH      s    zRDiskDataDriver.cmf_modelc                 C   s   d S r1   r   )r
   Zdp_instancer   r   r   is_instance   s    zRDiskDataDriver.is_instancec                 C   s   d S r1   r   )r
   Zmodels_r   r   r   make_models   s    zRDiskDataDriver.make_modelsc                 O   s   dS )u,   Вернём кастомный запросNr   )r
   r*   r+   r   r   r   query_deprecated   s    z RDiskDataDriver.query_deprecatedc                 C   s   |  d }|jjddd d S )NT)r3   exist_ok)r   r&   r8   )r
   r,   r   r   r   init_db   s    
zRDiskDataDriver.init_dbc                 C   s   |   j|}|| d S r1   )r   r&   r'   write)r
   r4   datar.   r   r   r   rO      s    zRDiskDataDriver.write).)__name__
__module____qualname__r   r   r   r8   r9   r;   r=   r>   rB   rD   rE   rF   rG   rI   rH   rJ   rK   rL   rN   rO   r   r   r   r   r      s(   
!r   N)Zcmf.includeZcmf.data_providers.baser   r   Zrdiskr   r   r   r   r   r   <module>   s   