o
    be                     @   s  d Z dZdZdZdZddlZddlZddlZ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mZ ddlmZ ddlZddlmZ dZdZdZei i ZeeZeeZeeZdZ dZ!dZ"dSddZ#G dd dZ$G dd de$e%Z&G dd de	Z'G dd dZ(G dd de)Z*G dd  d e(Z+G d!d" d"Z,G d#d$ d$e,Z-G d%d& d&e-Z.G d'd( d(e,Z/G d)d* d*e/Z0G d+d, d,e/Z1G d-d. d.e1Z2G d/d0 d0e1Z3G d1d2 d2e/Z4G d3d4 d4e/Z5G d5d6 d6e5Z6G d7d8 d8e/Z7G d9d: d:e/Z8G d;d< d<e8Z9G d=d> d>e/Z:G d?d@ d@e:Z;G dAdB dBe/Z<G dCdD dDe/Z=G dEdF dFe/Z>G dGdH dHe/Z?G dIdJ dJe/Z@G dKdL dLe/ZAG dMdN dNe/ZBG dOdP dPe/ZCG dQdR dRe/ZDdS )Tz=beatbox: Makes the salesforce.com SOAP API easily accessible.z0.96z
Simon FellzMad shouts to the sforce possiez$(C) 2006-2015 Simon Fell. GNU GPL 2.    N)XMLGenerator)	quoteattr)AttributesNSImpl)urlparse)StringIOBytesIO)islstzurn:partner.soap.sforce.comz#urn:sobject.partner.soap.sforce.comz)http://schemas.xmlsoap.org/soap/envelope/TF  c                 C   sJ   t jdk ri nd|i}ts|  dkrtj|fi |S tj|fi |S )N)      r   timeoutHTTP)sysversion_info	forceHttpupperhttplibHTTPConnectionHTTPSConnection)schemehostr   kwargs r   F/var/www/secure340b-portal/env/lib/python3.10/site-packages/beatbox.pymakeConnection&   s   r   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd@d4d5Zd6d7 Zd8d9 Zd:d; Zd<d= Z d>d? Z!d3S )AClientc                 C   s   d| _ d| _d | _d| _d S )Ni  z1https://login.salesforce.com/services/Soap/u/33.0   )	batchSize	serverUrl_Client__connr   selfr   r   r   __init__/   s   
zClient.__init__c                 C   s   | j d kr| j   d S d S N)r   closer    r   r   r   __del__5   s   
zClient.__del__c                 C   s6   t | j|| }| t|tj t|tj  |S r#   )LoginRequestr   post
useSessionstr_tPartnerNS	sessionId)r!   usernamepasswordlrr   r   r   login:   s    zClient.loginc                 C   s:   t | j|||| }| t|tj t|tj  |S r#   )PortalLoginRequestr   r'   r(   r)   r*   r+   )r!   r,   r-   orgIdportalIdr.   r   r   r   portalLoginD   s    zClient.portalLoginc           	      C   s2   || _ || _t| j\}}}}}}t||| _d S r#   )r+   _Client__serverUrlr   r   r   )	r!   r+   r   r   r   pathparamsqueryfragr   r   r   r(   J   s   zClient.useSessionc                 C   s   t | j| j| jdS NT)LogoutRequestr4   r+   r'   r   r    r   r   r   logoutR      zClient.logoutc                 C      t | j| j| j|| jS r#   QueryRequestr4   r+   r   r'   r   r!   soqlr   r   r   r7   V      zClient.queryc                 C   s   t | j| j| j|d| jS )NqueryAllr>   r@   r   r   r   rC   Z      zClient.queryAllc                 C   r=   r#   )QueryMoreRequestr4   r+   r   r'   r   )r!   queryLocatorr   r   r   	queryMore]   rB   zClient.queryMorec                 C      t | j| j|| jS r#   )SearchRequestr4   r+   r'   r   )r!   soslr   r   r   search`   r<   zClient.searchc                 C      t | j| j|||| jS r#   )GetUpdatedRequestr4   r+   r'   r   r!   sObjectTypestartendr   r   r   
getUpdatedc   rB   zClient.getUpdatedc                 C   rL   r#   )GetDeletedRequestr4   r+   r'   r   rN   r   r   r   
getDeletedf   rB   zClient.getDeletedc                 C   rL   r#   )RetrieveRequestr4   r+   r'   r   )r!   fieldsrO   idsr   r   r   retrievei   rB   zClient.retrievec                 C   rH   r#   )CreateRequestr4   r+   r'   r   r!   sObjectsr   r   r   createm   r<   zClient.createc                 C   rH   r#   )UpdateRequestr4   r+   r'   r   rZ   r   r   r   updateq   r<   zClient.updatec                 C   s   t | j| j||| jS r#   )UpsertRequestr4   r+   r'   r   )r!   externalIdNamer[   r   r   r   upsertu      zClient.upsertc                 C   rH   r#   )DeleteRequestr4   r+   r'   r   r!   rW   r   r   r   deletey   r<   zClient.deletec                 C   rH   r#   )UndeleteRequestr4   r+   r'   r   rd   r   r   r   undelete}   r<   zClient.undeletec                 C   rH   r#   )ConvertLeadRequestr4   r+   r'   r   )r!   leadConvertsr   r   r   convertLead   r<   zClient.convertLeadc                 C   rH   r#   )DescribeSObjectsRequestr4   r+   r'   r   )r!   sObjectTypesr   r   r   describeSObjects   r<   zClient.describeSObjectsc                 C      t | j| jd| jS )NdescribeGlobalAuthenticatedRequestr4   r+   r'   r   r    r   r   r   ro      r<   zClient.describeGlobalc                 C   rH   r#   )DescribeLayoutRequestr4   r+   r'   r   )r!   rO   r   r   r   describeLayout   r<   zClient.describeLayoutc                 C      t | j| jd| jdS )NdescribeTabsTrp   r    r   r   r   ru      rb   zClient.describeTabsc                 C   rt   )NdescribeSearchScopeOrderTrp   r    r   r   r   rv      rb   zClient.describeSearchScopeOrderc                 C      t | j| j|| jdS r9   )DescribeQuickActionsRequestr4   r+   r'   r   r!   actionsr   r   r   describeQuickActions   rb   zClient.describeQuickActionsNc                 C   rw   r9   )$DescribeAvailableQuickActionsRequestr4   r+   r'   r   )r!   
parentTyper   r   r   describeAvailableQuickActions   rb   z$Client.describeAvailableQuickActionsc                 C   rw   r9   )PerformQuickActionsRequestr4   r+   r'   r   ry   r   r   r   performQuickActions   rb   zClient.performQuickActionsc                 C   s"   t t| j| jd| jtj S )NgetServerTimestamp)r)   rq   r4   r+   r'   r   r*   	timestampr    r   r   r   r      s   "zClient.getServerTimestampc                 C   rH   r#   )ResetPasswordRequestr4   r+   r'   r   )r!   userIdr   r   r   resetPassword   r<   zClient.resetPasswordc                 C   s   t | j| j||| j d S r#   )SetPasswordRequestr4   r+   r'   r   )r!   r   r-   r   r   r   setPassword   rD   zClient.setPasswordc                 C   rn   )NgetUserInforp   r    r   r   r   r      r<   zClient.getUserInfor#   )"__name__
__module____qualname__r"   r%   r/   r3   r(   r;   r7   rC   rG   rK   rR   rT   rX   r\   r^   ra   re   rg   rj   rm   ro   rs   ru   rv   r{   r~   r   r   r   r   r   r   r   r   r   r   .   s@    

r   c                       s   e Zd Z fddZdd ZdddZ fdd	Z fd
dZd fdd	Zd fdd	Z	d fdd	Z
d fdd	Zd fdd	Z  ZS )
IterClientc                    s   t t|   d S r#   )superr   r"   r    	__class__r   r   r"         zIterClient.__init__c                 c   sB    	 |t jd  D ]}|V  q	t|t j dkrd S | |j}q)N   true)r*   recordsr)   donerG   rF   )r!   ZqueryHandleelemr   r   r   gatherRecords   s   zIterClient.gatherRecordsNc                 c   sP    t |s|gV  d S |d u r| j}tdt||D ]}||||  V  qd S )Nr   )r   r   rangelen)r!   Z
collectionchunkLengthir   r   r   chunkRequests   s   zIterClient.chunkRequestsc                       |  tt| |S r#   )r   r   r   r7   r@   r   r   r   r7         zIterClient.queryc                    r   r#   )r   r   r   rC   r@   r   r   r   rC      r   zIterClient.queryAllc                 #   Z    | j ||dD ]"}t|dkrtt| |g}ntt| |}|D ]}|V  q$qd S N)r   r   )r   r   r   r   r\   r!   r[   r   chunk	responsesresponser   r   r   r\         zIterClient.createc                 #   r   r   )r   r   r   r   r^   r   r   r   r   r^      r   zIterClient.updatec                 #   s^    | j ||dD ]$}t|dkrtt| ||g}n	tt| ||}|D ]}|V  q&qd S r   )r   r   r   r   ra   )r!   r`   r[   r   r   r   r   r   r   r   ra      s   zIterClient.upsertc                 #   r   r   )r   r   r   r   re   r!   rW   r   r   r   r   r   r   r   re      r   zIterClient.deletec                 #   r   r   )r   r   r   r   rg   r   r   r   r   rg      r   zIterClient.undeleter#   )r   r   r   r"   r   r   r7   rC   r\   r^   ra   re   rg   __classcell__r   r   r   r   r      s    
				
	r   c                   @   $   e Zd Zdd Zdd Zdd ZdS )BeatBoxXmlGeneratorc                 C   s   || _ t| || d S r#   )Z_outr   r"   )r!   destinationencodingr   r   r   r"     s   zBeatBoxXmlGenerator.__init__c                 C   s.   |d d u r
|d S | j |d  d |d  S )Nr   r   :)_current_context)r!   namer   r   r   makeName  s   zBeatBoxXmlGenerator.makeNamec                 C   s   |  td| |  | jD ]}|  td|  qg | _t| D ]\}}|  td| |t|f  q$|  td d S )N<z xmlns:%s="%s"z %s=%s>)_writer)   r   _undeclared_ns_mapslistitemsr   )r!   r   qnameattrspairvaluer   r   r   startElementNS  s   
"z"BeatBoxXmlGenerator.startElementNSN)r   r   r   r"   r   r   r   r   r   r   r         r   c                   @   sT   e Zd Zdd Zdd Zdd ZefddZefd	d
Zdd Z	dd Z
dd ZdS )	XmlWriterc                 C   sT   t d| _|rtjd| jd| _| j}n| j}d | _t|d| _| j  g | _d S )N wb)modefileobjutf-8)	r   _XmlWriter__bufgzipGzipFile_XmlWriter__gzipr   xgstartDocument_XmlWriter__elems)r!   ZdoGzipZstmr   r   r   r"     s   


zXmlWriter.__init__c                 C   s   | j || d S r#   )r   startPrefixMapping)r!   prefix	namespacer   r   r   r   &  r   zXmlWriter.startPrefixMappingc                 C   s   | j | d S r#   )r   endPrefixMapping)r!   r   r   r   r   r   )  s   zXmlWriter.endPrefixMappingc                 C   s(   | j ||f|| | j||f d S r#   )r   r   r   append)r!   r   r   r   r   r   r   startElement,  s   zXmlWriter.startElementc                 C   sJ   t |r|D ]
}| |||| qd S | ||| | | |   d S r#   )r   writeStringElementr   
characters
endElement)r!   r   r   r   r   vr   r   r   r   1  s   
zXmlWriter.writeStringElementc                 C   s(   | j d }| j||d  | j d= d S )Nr   )r   r   endElementNS)r!   er   r   r   r   :  s   
zXmlWriter.endElementc                 C   sn   t |tjr| }n$t |tjrd|j|j|jf }nt |tr&t|}n	t |t	r/t|}| j
| d S )Nz%04d-%02d-%02d)
isinstancedatetime	isoformatdateyearmonthdayintr)   floatr   r   r!   sr   r   r   r   ?  s   



zXmlWriter.charactersc                 C   s(   | j   | jd kr| j  | j S r#   )r   endDocumentr   r$   r   getvaluer    r   r   r   r   M  s   



zXmlWriter.endDocumentN)r   r   r   r"   r   r   _noAttrsr   r   r   r   r   r   r   r   r   r     s    	r   c                   @      e Zd Zdd Zdd ZdS )SoapFaultErrorc                 C   s   || _ || _d S r#   )	faultCodefaultString)r!   r   r   r   r   r   r"   U  s   
zSoapFaultError.__init__c                 C   s   t | jd t | j S )N )reprr   r   r    r   r   r   __str__Y  r<   zSoapFaultError.__str__N)r   r   r   r"   r   r   r   r   r   r   T      r   c                   @   s,   e Zd ZdZdd ZefddZdd ZdS )	
SoapWriterz)http://www.w3.org/2001/XMLSchema-instancec                 C   sN   t | t | dt | dt | dt | dtj | 	td d S )Nr   poxZEnvelope)
r   r"   gzipRequestr   _envNs
_partnerNs
_sobjectNsr   _SoapWriter__xsiNsr   r    r   r   r   r"   `  s   zSoapWriter.__init__c                 C   sD   |d u r|rd|t jdf< nt jdfdi}d}t| |||| d S )Nr   nilr   )r   r   r   r   )r!   r   r   r   r   r   r   r   r   h  s   zSoapWriter.writeStringElementc                 C   s:   |    | d | d | d | d t| S )Nr   r   r   r   )r   r   r   r   r    r   r   r   r   q  s   




zSoapWriter.endDocumentN)r   r   r   r   r"   r   r   r   r   r   r   r   r   ]  s
    	r   c                   @   s>   e Zd Zde fddZdd Zdd Zdd	 ZdddZd
S )SoapEnvelopeBeatBox/c                 C   s   || _ || _|| _d S r#   )r   operationNameclientId)r!   r   r   r   r   r   r   r"   {  s   
zSoapEnvelope.__init__c                 C      d S r#   r   r!   writerr   r   r   writeHeaders     zSoapEnvelope.writeHeadersc                 C   r   r#   r   r   r   r   r   	writeBody  r   zSoapEnvelope.writeBodyc                 C   s   t  }|td |d |td |td| j |  |d | | |  |td |d |t| j	 | 
| |  |  | S )NHeader
ZCallOptionsclientBody)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   makeEnvelope  s    




zSoapEnvelope.makeEnvelopeNFc                 C   sR  dt  ddd}trd|d< trd|d< d}t| j\}}}}}	}
|d kr,t||}d	}|  }|d
||| | }|	dddkrTt
jt| d d}n| d}|ra|  t|}z t|tj tj j}t|tj tj jdd }t|| ty   Y nw |tj d }|st|dkr|d d  S |d S )Nr   z""ztext/xml; charset=utf-8)z
User-AgentZ
SOAPActionzContent-Typer   zaccept-encodingzcontent-encodingFTPOSTr   )r   r   r   r   r   r   )__version__gzipResponser   r   r   r   r  requestgetresponse	getheaderr   r   r   readdecoder$   xmltrampparser)   _tSoapNSr  FaultZfaultstringZ	faultcodesplitr   KeyErrorr   )r!   connZalwaysReturnListheadersr$   r   r   r5   r6   r7   r8   Z
rawRequestr   ZrawResponseZtrampr   r   resultr   r   r   r'     sB   
 
 
zSoapEnvelope.post)NF)	r   r   r   r  r"   r   r   r  r'   r   r   r   r   r   z  s    r   c                   @   r   )r&   c                 C   s   t | |d || _|| _d S )Nr/   )r   r"   _LoginRequest__username_LoginRequest__password)r!   r   r,   r-   r   r   r   r"     s   
zLoginRequest.__init__c                 C   $   | td| j | td| j d S )Nr,   r-   )r   r   r  r  r   r   r   r   r        zLoginRequest.writeBodyNr   r   r   r"   r   r   r   r   r   r&         r&   c                   @   r   )r0   c                 C   s    t | ||| || _|| _d S r#   )r&   r"   _PortalLoginRequest__orgId_PortalLoginRequest__portalId)r!   r   r,   r-   r1   r2   r   r   r   r"        
zPortalLoginRequest.__init__c                 C   sL   | td |td| j | jd u s | jdks |td| j |  d S )NZLoginScopeHeaderZorganizationIdr   r2   )r   r   r   r  r  r   r   r   r   r   r     s
   zPortalLoginRequest.writeHeadersNr   r   r   r"   r   r   r   r   r   r0     r  r0   c                   @   s.   e Zd Zdd Zdd Zdd Zddd	Zd
S )rq   c                 C   s   t | || || _d S r#   )r   r"   r+   )r!   r   r+   r   r   r   r   r"     s   
zAuthenticatedRequest.__init__c                 C   s(   | td |td| j |  d S )NZSessionHeaderr+   )r   r   r   r+   r   r   r   r   r   r     s   z!AuthenticatedRequest.writeHeadersc                 C   s   t |r|D ]	}| ||| qd S |t| t| D ]}t|| tr1| ||| | q|t	|||  q|
  d S r#   )r   	writeDictr   r   r   keysr   dictr   r   r   )r!   r   elemNamedr   fnr   r   r   r    s   zAuthenticatedRequest.writeDictr[   c                 C   s   t |r|D ]	}| ||| qd S |t| |td|d  t| D ] }|dkrGt|| t	r>| ||| | q'|t|||  q'|
  d S )Ntype)r   writeSObjectsr   r   r   r   r   r   r   r!  r   )r!   r   r[   r"  r   r$  r   r   r   r&    s   z"AuthenticatedRequest.writeSObjectsN)r[   )r   r   r   r"   r   r  r&  r   r   r   r   rq     s
    rq   c                   @      e Zd Zdd ZdS )r:   c                 C   s   t | ||d d S )Nr;   )rq   r"   )r!   r   r+   r   r   r   r"        zLogoutRequest.__init__Nr   r   r   r"   r   r   r   r   r:         r:   c                   @   r   )QueryOptionsRequestc                 C      t | ||| || _d S r#   )rq   r"   r   )r!   r   r+   r   r   r   r   r   r"        
zQueryOptionsRequest.__init__c                 C   s4   t | | |td |td| j |  d S )NZQueryOptionsr   )rq   r   r   r   r   r   r   r   r   r   r   r     s   z QueryOptionsRequest.writeHeadersNr  r   r   r   r   r+    r   r+  c                   @      e Zd ZdddZdd ZdS )r?   r7   c                 C   s   t | |||| || _d S r#   )r+  r"   _QueryRequest__query)r!   r   r+   r   rA   r   r   r   r   r"        
zQueryRequest.__init__c                 C      | td| j d S )NZqueryString)r   r   r/  r   r   r   r   r     r(  zQueryRequest.writeBodyN)r7   r  r   r   r   r   r?         
r?   c                   @   r   )rE   c                 C   s   t | |||d || _d S )NrG   )r+  r"   _QueryMoreRequest__queryLocator)r!   r   r+   r   rF   r   r   r   r"   "  r0  zQueryMoreRequest.__init__c                 C   r1  )NrF   )r   r   r3  r   r   r   r   r   &  r(  zQueryMoreRequest.writeBodyNr  r   r   r   r   rE   !  r   rE   c                   @   r   )rI   c                 C      t | ||d || _d S )NrK   )rq   r"   _SearchRequest__query)r!   r   r+   rJ   r   r   r   r"   +  r-  zSearchRequest.__init__c                 C   r1  )NsearchString)r   r   r5  r   r   r   r   r   /  r(  zSearchRequest.writeBodyNr  r   r   r   r   rI   *  r   rI   c                   @   r.  )rM   rR   c                 C   s&   t | ||| || _|| _|| _d S r#   )rq   r"   _GetUpdatedRequest__sObjectType_GetUpdatedRequest__start_GetUpdatedRequest__end)r!   r   r+   rO   rP   rQ   r   r   r   r   r"   4     
zGetUpdatedRequest.__init__c                 C   4   | td| j | td| j | td| j d S )NrO   Z	startDateZendDate)r   r   r7  r8  r9  r   r   r   r   r   :     zGetUpdatedRequest.writeBodyN)rR   r  r   r   r   r   rM   3  s    
rM   c                   @   r'  )rS   c              	   C   s   t | |||||d d S )NrT   )rM   r"   )r!   r   r+   rO   rP   rQ   r   r   r   r"   A  rb   zGetDeletedRequest.__init__Nr)  r   r   r   r   rS   @  r*  rS   c                   @   r   )r_   c                 C       t | ||d || _|| _d S )Nra   )rq   r"   _UpsertRequest__externalIdName_UpsertRequest__sObjects)r!   r   r+   r`   r[   r   r   r   r"   F  r  zUpsertRequest.__init__c                 C   s"   | td| j | || j d S )NZexternalIDFieldName)r   r   r>  r&  r?  r   r   r   r   r   K  s   zUpsertRequest.writeBodyNr  r   r   r   r   r_   E  r  r_   c                   @   r.  )r]   r^   c                 C   r,  r#   )rq   r"   _UpdateRequest__sObjects)r!   r   r+   r[   r   r   r   r   r"   Q  r-  zUpdateRequest.__init__c                 C   s   |  || j d S r#   )r&  r@  r   r   r   r   r   U  r   zUpdateRequest.writeBodyN)r^   r  r   r   r   r   r]   P  r2  r]   c                   @   r'  )rY   c                 C      t | |||d d S )Nr\   )r]   r"   )r!   r   r+   r[   r   r   r   r"   Z  r   zCreateRequest.__init__Nr)  r   r   r   r   rY   Y  r*  rY   c                   @   r.  )rc   re   c                 C   r,  r#   )rq   r"   _DeleteRequest__ids)r!   r   r+   rW   r   r   r   r   r"   _  r-  zDeleteRequest.__init__c                 C   r1  )Nid)r   r   rB  r   r   r   r   r   c  r(  zDeleteRequest.writeBodyN)re   r  r   r   r   r   rc   ^  r2  rc   c                   @   r'  )rf   c                 C   rA  )Nrg   )rc   r"   )r!   r   r+   rW   r   r   r   r"   g  r   zUndeleteRequest.__init__Nr)  r   r   r   r   rf   f  r*  rf   c                   @   r   )rU   c                 C   s&   t | ||d || _|| _|| _d S )NrX   )rq   r"   _RetrieveRequest__fields_RetrieveRequest__sObjectType_RetrieveRequest__ids)r!   r   r+   rV   rO   rW   r   r   r   r"   l  r:  zRetrieveRequest.__init__c                 C   r;  )NZ	fieldListrO   rW   )r   r   rD  rE  rF  r   r   r   r   r   r  r<  zRetrieveRequest.writeBodyNr  r   r   r   r   rU   k  s    rU   c                   @   r   )r   c                 C   r4  )Nr   )rq   r"   _ResetPasswordRequest__userId)r!   r   r+   r   r   r   r   r"   y  r-  zResetPasswordRequest.__init__c                 C   r1  )Nr   )r   r   rG  r   r   r   r   r   }  r(  zResetPasswordRequest.writeBodyNr  r   r   r   r   r   x  r   r   c                   @   r   )r   c                 C   r=  )Nr   )rq   r"   _SetPasswordRequest__userId_SetPasswordRequest__password)r!   r   r+   r   r-   r   r   r   r"     r  zSetPasswordRequest.__init__c                 C   r  )Nr   r-   )r   r   rH  rI  r   r   r   r   r     r  zSetPasswordRequest.writeBodyNr  r   r   r   r   r     r  r   c                   @   r   )rh   c                 C   r4  )Nrj   )rq   r"   _ConvertLeadRequest__leads)r!   r   r+   ri   r   r   r   r"     r-  zConvertLeadRequest.__init__c                 C   s   |  |d| j d S )Nri   )r  rJ  r   r   r   r   r     r(  zConvertLeadRequest.writeBodyNr  r   r   r   r   rh     r   rh   c                   @   r   )rk   c                 C   r4  )Nrm   )rq   r"   &_DescribeSObjectsRequest__sObjectTypes)r!   r   r+   rl   r   r   r   r"     r-  z DescribeSObjectsRequest.__init__c                 C   r1  NrO   )r   r   rK  r   r   r   r   r     r(  z!DescribeSObjectsRequest.writeBodyNr  r   r   r   r   rk     r   rk   c                   @   r   )rr   c                 C   r4  )Nrs   )rq   r"   #_DescribeLayoutRequest__sObjectType)r!   r   r+   rO   r   r   r   r"     r-  zDescribeLayoutRequest.__init__c                 C   r1  rL  )r   r   rM  r   r   r   r   r     r(  zDescribeLayoutRequest.writeBodyNr  r   r   r   r   rr     r   rr   c                   @   r   )rx   c                 C   r4  )Nr{   )rq   r"   %_DescribeQuickActionsRequest__actionsr!   r   r+   rz   r   r   r   r"     r-  z$DescribeQuickActionsRequest.__init__c                 C   r1  )Naction)r   r   rN  r   r   r   r   r     r(  z%DescribeQuickActionsRequest.writeBodyNr  r   r   r   r   rx     r   rx   c                   @   r   )r|   c                 C   r4  )Nr~   )rq   r"   1_DescribeAvailableQuickActionsRequest__parentType)r!   r   r+   r}   r   r   r   r"     r-  z-DescribeAvailableQuickActionsRequest.__init__c                 C   r1  )Nr}   )r   r   rQ  r   r   r   r   r     r(  z.DescribeAvailableQuickActionsRequest.writeBodyNr  r   r   r   r   r|     r   r|   c                   @   r   )r   c                 C   r4  )Nr   )rq   r"   $_PerformQuickActionsRequest__actionsrO  r   r   r   r"     r-  z#PerformQuickActionsRequest.__init__c                 C   s8   t | jr| jD ]}| || qd S | || j d S r#   )r   rR  ZwriteQuckActionwriteQuickActionr!   r   rP  r   r   r   r     s
   

z$PerformQuickActionsRequest.writeBodyc                 C   sP   | td |td|d |td|d  | ||d d |  d S )NZquickActionsZparentIdZquickActionNamer   )r   r   r   getr&  r   rT  r   r   r   rS    s
   z+PerformQuickActionsRequest.writeQuickActionN)r   r   r   r"   r   rS  r   r   r   r   r     r   r   )r	   )E__doc__r  
__author____credits____copyright__r   r   r   xml.sax.saxutilsr   r   Zxml.sax.xmlreaderr   urllib.parser   ior   r   http.clientr  r   Z	xmltramp2r  r   r   r   r   r   	Namespacer*   Z_tSObjectNSr  r   r  r   r   r   objectr   r   r   	Exceptionr   r   r   r&   r0   rq   r:   r+  r?   rE   rI   rM   rS   r_   r]   rY   rc   rf   rU   r   r   rh   rk   rr   rx   r|   r   r   r   r   r   <module>   sv    




 M;	N
'								