o
    ˷e8                     @   s<   d 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 List Member Events API endpoint

Documentation: https://mailchimp.com/developer/reference/lists/list-members/list-member-events/
    )unicode_literals)BaseApi)check_subscriber_hashc                       s2   e Zd ZdZ fddZdd Zd	ddZ  ZS )
ListMemberEventszh
    Use the Events endpoint to collect website or in-app actions and trigger targeted automations.
    c                    s,   t t| j|i | d| _d| _d| _dS )z)
        Initialize the endpoint
        listsN)superr   __init__endpointlist_idsubscriber_hash)selfargskwargs	__class__ [/var/www/ideatree/venv/lib/python3.10/site-packages/mailchimp3/entities/listmemberevents.pyr      s   
zListMemberEvents.__init__c                 C   sh   t |}|| _|| _d|vrtdt|d dk s"t|d dkr&td| jj| |d|d|dS )	u  
        Add an event for a list member.

        :param list_id: The unique id for the list.
        :type list_id: :py:class:`str`
        :param subscriber_hash: The MD5 hash of the lowercase version of the
          list member’s email address.
        :type subscriber_hash: :py:class:`str`
        :param data: The request body parameters
        :type data: :py:class:`dict`
        data = {
            "name": string*, (Must be 2-30 characters in length)
        }
        namez'The list member events must have a name      z2The list member events name must be 2-30 in lengthmembersevents)urldata)	r   r
   r   KeyErrorlen
ValueError
_mc_client_post_build_path)r   r
   r   r   r   r   r   create   s    zListMemberEvents.createFc              	   K   sZ   t |}|| _|| _|r| jdd| |d|di|S | jjdd| |d|di|S )ua  
        Get events for a contact

        :param list_id: The unique id for the list.
        :type list_id: :py:class:`str`
        :param subscriber_hash: The MD5 hash of the lowercase version of the
          list member’s email address.
        :type subscriber_hash: :py:class:`str`
        :param get_all: Should the query get all results
        :type get_all: :py:class:`bool`
        :param queryparams: The query string parameters
        queryparams['count'] = integer
        queryparams['offset'] = integer
        queryparams['fields'] = []
        queryparams['exclude_fields'] = []
        r   r   r   Nr   )r   r
   r   _iterater   r   _get)r   r
   r   get_allqueryparamsr   r   r   all2   s    "zListMemberEvents.all)F)__name__
__module____qualname____doc__r   r    r%   __classcell__r   r   r   r   r      s
    	r   N)r)   
__future__r   mailchimp3.baseapir   mailchimp3.helpersr   r   r   r   r   r   <module>   s
   