a
    DøgI  ã                   @   sP   d dl mZ d dlmZ d dlmZ d dlmZ ddlm	Z	 G dd„ deƒZ
d	S )
é    )ÚOrderedDict)Úsettings)ÚBasePagination)ÚResponseé   )ÚBadRequestErrorc                   @   s   e Zd Zddd„Zdd„ ZdS )ÚWagtailPaginationNc           
      C   sÞ   t tddƒ}z$t|j dd¡ƒ}|dk r.tƒ ‚W n tyJ   tdƒ‚Y n0 z6|sVdntd|ƒ}t|j d|¡ƒ}|dk r€tƒ ‚W n tyœ   tdƒ‚Y n0 |r¶||kr¶td| ƒ‚|}|| }	|| _| 	¡ | _
|||	… S )	NZWAGTAILAPI_LIMIT_MAXé   Úoffsetr   z!offset must be a positive integerÚlimitz limit must be a positive integerzlimit cannot be higher than %d)Úgetattrr   ÚintÚGETÚgetÚ
ValueErrorr   ÚminÚviewÚcountÚtotal_count)
ÚselfZquerysetÚrequestr   Z	limit_maxr
   Zlimit_defaultr   ÚstartÚstop© r   úX/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/api/v2/pagination.pyÚpaginate_queryset   s*    


z#WagtailPagination.paginate_querysetc                 C   s(   t dt d| jfgƒfd|fgƒ}t|ƒS )NÚmetar   Úitems)r   r   r   )r   Údatar   r   r   Úget_paginated_response'   s    ÿÿþ÷ÿz(WagtailPagination.get_paginated_response)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   
   s   
r   N)Úcollectionsr   Zdjango.confr   Zrest_framework.paginationr   Zrest_framework.responser   Úutilsr   r   r   r   r   r   Ú<module>   s
   