o
    ˷e                     @   sH   d 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 )	z
The Landing Pages API endpoint

Documentation: https://mailchimp.com/developer/reference/landing-pages/
Schema: https://api.mailchimp.com/schema/3.0/LandingPages/Instance.json
    )unicode_literals)BaseApi)LandingPageAction)LandingPageContentc                       sJ   e Zd ZdZ fddZdd ZdddZd	d
 Zdd Zdd Z	  Z
S )LandingPageszK
    Manage your Landing Pages, including publishing and unpublishing.
    c                    s:   t t| j|i | d| _d| _t| | _t| | _dS )z)
        Initialize the endpoint
        zlanding-pagesN)	superr   __init__endpointpage_idr   contentr   actions)selfargskwargs	__class__ W/var/www/ideatree/venv/lib/python3.10/site-packages/mailchimp3/entities/landingpages.pyr      s
   
zLandingPages.__init__c                 C   sD   d|vrt d| jj|  |d}|dur|d | _|S d| _|S )z
        Create a new Landing Page.

        :param data: The request body parameters
        :type data: :py:class:`dict`
        data = {
            "list_id": string*,
        }
        list_idz$The landing page must have a list_idurldataNid)KeyError
_mc_client_post_build_pathr
   )r   r   responser   r   r   create   s   

zLandingPages.createFc                 K   s<   d| _ |r| jdd|  i|S | jjdd|  i|S )a  
        Get all landinge pages.

        :param get_all: Should the query get all results
        :type get_all: :py:class:`bool`
        :param queryparams: The query string parameters
        queryparams['sort_field'] = string
        queryparams['sort_dir'] = string
        queryparams['fields'] = []
        queryparams['exclude_fields'] = []
        queryparams['count'] = integer
        Nr   r   )r
   _iterater   r   _get)r   get_allqueryparamsr   r   r   all2   s   zLandingPages.allc                 K   s"   || _ | jjdd| |i|S )a  
        Get information about a specific page.

        :param page_id: The unique id for the page.
        :type page_id: :py:class:`str`
        :param queryparams: The query string parameters
        queryparams['fields'] = []
        queryparams['exclude_fields'] = []
        r   Nr   )r
   r   r    r   )r   r
   r"   r   r   r   getF   s   
zLandingPages.getc                 C   s   || _ | jj| ||dS )z
        Update a landing page.

        :param page_id: The unique id for the landing page.
        :type page_id: :py:class:`str`
        :param data: The request body parameters
        :type data: :py:class:`dict`
        r   )r
   r   _patchr   )r   r
   r   r   r   r   updateT   s   	zLandingPages.updatec                 C   s   || _ | jj| |dS )z
        Remove a landing page from your MailChimp account.

        :param page_id: The unique id for the landing page.
        :type page_id: :py:class:`str`
        )r   )r
   r   _deleter   )r   r
   r   r   r   deletea   s   zLandingPages.delete)F)__name__
__module____qualname____doc__r   r   r#   r$   r&   r(   __classcell__r   r   r   r   r      s    
r   N)
r,   
__future__r   mailchimp3.baseapir   %mailchimp3.entities.landingpageactionr   &mailchimp3.entities.landingpagecontentr   r   r   r   r   r   <module>   s   