o
    iy                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ er: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 )    )StripeService)sanitize_id)Optionalcast)TYPE_CHECKING)RequestOptions) ReaderPresentPaymentMethodParams)"ReaderSucceedInputCollectionParams)"ReaderTimeoutInputCollectionParams)Readerc                	   @   s   e Zd Z		ddeded ded ddfd	d
Z		ddeded ded ddfddZ		ddeded ded ddfddZ		ddeded ded ddfddZ		ddeded ded ddfddZ			ddeded ded ddfddZ
dS )ReaderServiceNreaderparamsr   optionsr   returnr   c              	   C   &   t d| jddjt|dd||dS )
        Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction.
        r   postA/v1/test_helpers/terminal/readers/{reader}/present_payment_methodr   apibase_addressr   r   r   _requestformatr   selfr   r   r    r   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/test_helpers/terminal/_reader_service.pypresent_payment_method      	z$ReaderService.present_payment_methodc              	      .   t d| jddjt|dd||dI dH S )r   r   r   r   r   r   r   Nr   _request_asyncr   r   r   r   r   r   present_payment_method_async-      	
z*ReaderService.present_payment_method_asyncr	   c              	   C   r   )c
        Use this endpoint to trigger a successful input collection on a simulated reader.
        r   r   C/v1/test_helpers/terminal/readers/{reader}/succeed_input_collectionr   r   r   r   r   r   r   r   succeed_input_collectionC   r!   z&ReaderService.succeed_input_collectionc              	      r"   )r'   r   r   r(   r   r   r   Nr#   r   r   r   r   succeed_input_collection_asyncY   r&   z,ReaderService.succeed_input_collection_asyncr
   c              	   C   r   )o
        Use this endpoint to complete an input collection with a timeout error on a simulated reader.
        r   r   C/v1/test_helpers/terminal/readers/{reader}/timeout_input_collectionr   r   r   r   r   r   r   r   timeout_input_collectiono   r!   z&ReaderService.timeout_input_collectionc              	      r"   )r+   r   r   r,   r   r   r   Nr#   r   r   r   r   timeout_input_collection_async   r&   z,ReaderService.timeout_input_collection_async)NN)__name__
__module____qualname__strr   r    r%   r)   r*   r-   r.   r   r   r   r   r      s    




r   N)stripe._stripe_servicer   stripe._utilr   typingr   r   typing_extensionsr   stripe._request_optionsr   Istripe.params.test_helpers.terminal._reader_present_payment_method_paramsr   Kstripe.params.test_helpers.terminal._reader_succeed_input_collection_paramsr	   Kstripe.params.test_helpers.terminal._reader_timeout_input_collection_paramsr
   stripe.terminal._readerr   r   r   r   r   r   <module>   s   