
    p h                     V    d dl Z d dlmZmZmZ d dlmZ d dlmZ  G d de	          Z
dS )    N)AnyDictOptionalTwilioException)Responsec                   T   e Zd ZdZh dZi fdefdZd Zd Zd Z	e
dedefd	            Zd
eeef         fdZedee         fd            Zedee         fd            Zd
eeef         defdZded          fdZded          fdZded          fdZded          fdZdefdZdS )Pagez
    Represents a page of records in a collection.

    A `Page` lets you iterate over its records and fetch the next and previous
    pages in the collection.
    >   enduripagestarttotal	num_pages	page_sizelast_page_urinext_page_urifirst_page_uriprevious_page_uriresponsec                     |                      |          }|| _        || _        || _        t	          |                     |                    | _        d S N)process_response_version_payload	_solutioniter	load_page_records)selfversionr   solutionpayloads        L/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/twilio/base/page.py__init__zPage.__init__   sI    ''11!T^^G4455    c                     | S )z/
        A `Page` is a valid iterator.
         r    s    r$   __iter__zPage.__iter__&   s	     r&   c                 *    |                                  S r   )nextr)   s    r$   __next__zPage.__next__,   s    yy{{r&   c                 P    |                      t          | j                            S )z8
        Returns the next record in the `Page`.
        )get_instancer,   r   r)   s    r$   r,   z	Page.next/   s"       dm!4!4555r&   returnc                 j    |j         dk    rt          d|          t          j        |j                  S )z}
        Load a JSON response.

        :param response: The HTTP response.
        :return The JSON-loaded content.
           zUnable to fetch page)status_coder   jsonloadstext)clsr   s     r$   r   zPage.process_response5   s5     3&&!"8(CCCz(-(((r&   r#   c                 ,   d|v rd|d         v r||d         d                  S t          |                                          }|| j        z
  }t          |          dk    r||                                         S d|v r|d         S t          d          )z
        Parses the collection of records out of a list payload.

        :param payload: The JSON-loaded content.
        :return list: The list of records.
        metakey   	Resourcesz$Page Records can not be deserialized)setkeys	META_KEYSlenpopr   )r    r#   r>   r:   s       r$   r   zPage.load_pageB   s     W'&/!9!976?5122w||~~&&D'C3xx1}}swwyy))g%%{++DEEEr&   c                     d| j         v r"d| j         d         v r| j         d         d         S d| j         v r7| j         d         r*| j        j                            | j         d                   S dS )z`
        :return str: Returns a link to the previous_page_url or None if doesn't exist.
        r9   previous_page_urlr   Nr   r   domainabsolute_urlr)   s    r$   rC   zPage.previous_page_urlU   sv    
 T]""':dmF>S'S'S=()<==4=00T]CV5W0='44T]CV5WXXXtr&   c                     d| j         v r"d| j         d         v r| j         d         d         S d| j         v r7| j         d         r*| j        j                            | j         d                   S dS )z\
        :return str: Returns a link to the next_page_url or None if doesn't exist.
        r9   next_page_urlr   NrD   r)   s    r$   rH   zPage.next_page_urlc   sr    
 T]""$-:O'O'O=(99--$-2P-='44T]?5STTTtr&   c                      t          d          )z
        :param dict payload: A JSON-loaded representation of an instance record.
        :return: A rich, resource-dependent object.
        z<Page.get_instance() must be implemented in the derived classr   )r    r#   s     r$   r/   zPage.get_instanceo   s    
 J
 
 	
r&   c                     | j         sdS | j        j        j                            d| j                   }t          |           } || j        || j                  S )zR
        Return the `Page` after this one.
        :return The next page.
        NGET)rH   r   rE   twiliorequesttyper   r    r   r7   s      r$   	next_pagezPage.next_pagex   sW    
 ! 	4='.66ud>PQQ4jjs4=(DN;;;r&   c                    K   | j         sdS | j        j        j                            d| j                    d{V }t          |           } || j        || j                  S )za
        Asynchronously return the `Page` after this one.
        :return The next page.
        NrK   )rH   r   rE   rL   request_asyncrN   r   rO   s      r$   next_page_asynczPage.next_page_async   s      
 ! 	4-4BB4%
 
 
 
 
 
 
 
 4jjs4=(DN;;;r&   c                     | j         sdS | j        j        j                            d| j                   }t          |           } || j        || j                  S )zW
        Return the `Page` before this one.
        :return The previous page.
        NrK   )rC   r   rE   rL   rM   rN   r   rO   s      r$   previous_pagezPage.previous_page   sW    
 % 	4='.66ud>TUU4jjs4=(DN;;;r&   c                    K   | j         sdS | j        j        j                            d| j                    d{V }t          |           } || j        || j                  S )zf
        Asynchronously return the `Page` before this one.
        :return The previous page.
        NrK   )rC   r   rE   rL   rR   rN   r   rO   s      r$   previous_page_asynczPage.previous_page_async   s      
 % 	4-4BB4)
 
 
 
 
 
 
 
 4jjs4=(DN;;;r&   c                     dS )Nz<Page>r(   r)   s    r$   __repr__zPage.__repr__   s    xr&   N)__name__
__module____qualname____doc__r?   r   r%   r*   r-   r,   classmethodr   r   r   strr   propertyr   rC   rH   r/   rP   rS   rU   rW   rY   r(   r&   r$   r
   r
      s          I >@ 6 6( 6 6 6 6    6 6 6 
) 
)S 
) 
) 
) [
)Fc3h F F F F& 8C=    X 	x} 	 	 	 X	
DcN 
s 
 
 
 

<8F+ 
< 
< 
< 
<<x'7 < < < <
<x/ 
< 
< 
< 
<<8F+; < < < <#      r&   r
   )r4   typingr   r   r   twilio.base.exceptionsr   twilio.http.responser   objectr
   r(   r&   r$   <module>re      s     & & & & & & & & & & 2 2 2 2 2 2 ) ) ) ) ) )e e e e e6 e e e e er&   