| 1 |  |  | from ..Module import Module | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | class contact(Module): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |     opmap = { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  |         'infData':      'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |         'chkData':      'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  |         'creData':      'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  |         'authInfo':     'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |         'postalInfo':   'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |         'addr':         'descend', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |         'id':           'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |         'roid':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |         'name':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |         'org':          'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |         'street':       'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |         'city':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |         'pc':           'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |         'sp':           'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  |         'cc':           'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  |         'email':        'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |         'voice':        'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |         'fax':          'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  |         'clID':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  |         'crID':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  |         'upID':         'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  |         'crDate':       'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |         'upDate':       'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |         'trDate':       'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  |         'pw':           'set', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  | ### RESPONSE parsing | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  |     def parse_cd(self, response, tag): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  |         return self.parse_cd_tag(response, tag) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  | ### REQUEST rendering | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  |     def render_check(self, request): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |         return self.render_check_command(request, 'contact', 'id') | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 41 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 42 |  |  |     def render_info(self, request): | 
            
                                                                        
                            
            
                                    
            
            
                | 43 |  |  |         command = self.render_command_fields(request, 'info', {'id': {}}) | 
            
                                                                        
                            
            
                                    
            
            
                | 44 |  |  |         if request.has('pw'): | 
            
                                                                        
                            
            
                                    
            
            
                | 45 |  |  |             self.render_auth_info(request, command) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |     def render_create(self, request): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |         command = self.render_command_fields(request, 'create', {'id': {}}) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  |         postalInfo = request.sub(command, 'contact:postalInfo', {'type': 'int'}) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  |         request.sub(postalInfo, 'contact:name', {}, request.get('name')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  |         request.sub(postalInfo, 'contact:org',  {}, request.get('org')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |         self.render_addr(request, postalInfo) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  |         request.sub(command, 'contact:voice',   {}, request.get('voice')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  |         request.sub(command, 'contact:email',   {}, request.get('email')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |         if request.has('pw'): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |             self.render_auth_info(request, command) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  |     def render_addr(self, request, command): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |         addr = request.sub(command, 'contact:addr') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |         request.sub(addr, 'contact:street', {}, request.get('street1')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |         request.sub(addr, 'contact:city',   {}, request.get('city')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |         if request.has('sp'): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  |             request.sub(addr, 'contact:sp', {}, request.get('sp')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 |  |  |         request.sub(addr, 'contact:pc',     {}, request.get('pc')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  |         request.sub(addr, 'contact:cc',     {}, request.get('cc')) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 |  |  |     def render_auth_info(self, request, command, pw = None): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 |  |  |         if pw is None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 |  |  |             pw = request.get('pw', '') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 |  |  |         authInfo = request.sub(command, 'contact:authInfo') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 71 |  |  |         request.sub(authInfo, 'contact:pw', {}, pw) | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 72 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 73 |  |  |  |