o
    £ý¸i8  ã                   @  s:   d Z ddlmZ ddlmZ ddlmZ G dd„ dƒZdS )zTenant and app storage routing.é    )Úannotations)ÚPath)ÚAnyc                   @  s0   e Zd ZdZdddd„Zddd„Zddd„ZdS )ÚStorageRouterz1Resolve per-tenant, per-app filesystem locations.NÚ	base_pathústr | Path | NoneÚreturnÚNonec                 C  s   t |pdƒ| _d S )Nz*/var/www/html/flask_server/storage/tenants)r   r   )Úselfr   © r   ú"platform/routing/storage_router.pyÚ__init__   s   zStorageRouter.__init__Ú	tenant_idÚstrÚapp_idr   c                 C  s&   |pd  ¡ }|p	d  ¡ }| j| | S )z5Return the storage root for the given tenant and app.Ú )Ústripr   )r
   r   r   Ú
tenant_keyÚapp_keyr   r   r   Úget_tenant_storage_root   s   z%StorageRouter.get_tenant_storage_rootÚtenantúdict[str, Any] | Noneú
str | Noneúdict[str, Any]c                C  sN   |pi   d¡p|p
i   d¡p|pi   d¡}|  |pd|pd¡}||t|ƒdœS )NÚstorage_keyÚslugr   Úunknown)r   r   Úroot)Úgetr   r   )r
   r   r   r   Úpathr   r   r   Úresolve   s   *ýzStorageRouter.resolve)N)r   r   r   r	   )r   r   r   r   r   r   )r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    r   r   r   r   r   	   s
    
r   N)r$   Ú
__future__r   Úpathlibr   Útypingr   r   r   r   r   r   Ú<module>   s
    