o
    ÖtBh5
  ã                   @   s(   d dl mZ ddlZG dd„ deƒZdS )é   )ÚShopifyResourceé    Nc                       s–   e Zd ZdZdZei fdd„ƒZei dfdd„ƒZed‡ fdd	„	ƒZd
d„ Z	dd„ Z
ee	e
ddƒZdd„ Zdd„ Zdd„ Z‡ fdd„Zdd„ Z‡  ZS )ÚAssetÚkeyz/themes/$theme_id/c                 C   s"   |  d¡}|rd| j|f S | jS )NÚtheme_idú%s/themes/%s)ÚgetÚsite)ÚclsÚoptionsr   © r   ún/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/shopify/resources/asset.pyÚ_prefix	   s   
zAsset._prefixNc                 C   s<   |d u r|   |¡\}}d|  |¡d | j| jj|  |¡f S )Nz	%s%s.%s%sú/)Ú_split_optionsr   ÚpluralÚformatÚ	extensionÚ_query_string)r
   ÚidÚprefix_optionsÚquery_optionsr   r   r   Ú_element_path   s   üzAsset._element_pathc                    s‚   |st t| ƒjdi |¤ŽS d|i}| |¡ | d¡}|r$d| j|f n| j}| jd|| jjf fi |¤Ž}|r?|r?||j	d< |S )zv
        Find an asset by key
        E.g.
            shopify.Asset.find('layout/theme.liquid', theme_id=99)
        ú
asset[key]r   r   z%s/assets.%sNr   )
Úsuperr   ÚfindÚupdater   r	   Úfind_oner   r   Ú_prefix_options)r
   r   ÚkwargsÚparamsr   Úpath_prefixÚresource©Ú	__class__r   r   r      s   


z
Asset.findc                 C   s6   | j  d¡}|r
|S | j  d¡}|rt |¡ ¡ S d S )NÚvalueÚ
attachment)Ú
attributesr   Úbase64Ú	b64decodeÚdecode©ÚselfÚdatar   r   r   Ú__get_value1   s   ÿzAsset.__get_valuec                 C   s   |   ¡  || jd< d S )Nr%   )Ú_Asset__wipe_value_attributesr'   r+   r   r   r   Ú__set_value9   s   zAsset.__set_valuezThe asset's value or attachmentc                 C   s   t  |¡ ¡ | _d S ©N)r(   Ú	b64encoder*   r&   r+   r   r   r   Úattach?   s   zAsset.attachc                 C   s4   d| j i}| | j¡ | jj |  | j |¡| jj¡S )Nr   )r   r   r   r$   Ú
connectionÚdeleter   Úheaders)r,   r   r   r   r   ÚdestroyB   s   
zAsset.destroyc                 C   s   dS )NFr   )r,   r   r   r   Úis_newG   s   zAsset.is_newc                    s"   |dv r|   ¡  tt| ƒ ||¡S ©N)r%   r&   ÚsrcÚ
source_key)r/   r   r   Ú__setattr__)r,   Únamer%   r#   r   r   r<   J   s   zAsset.__setattr__c                 C   s    dD ]}|| j v r| j |= qd S r9   )r'   )r,   Úattrr   r   r   Ú__wipe_value_attributesO   s
   
€þzAsset.__wipe_value_attributesr1   )Ú__name__Ú
__module__Ú__qualname__Ú_primary_keyÚ_prefix_sourceÚclassmethodr   r   r   Ú_Asset__get_valueÚ_Asset__set_valueÚpropertyr%   r3   r7   r8   r<   r/   Ú__classcell__r   r   r#   r   r      s"    
r   )Úbaser   r(   r   r   r   r   r   Ú<module>   s    