Completed
Push — master ( 18d750...3bad9e )
by Andrii
11:56
created

contact   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 69
rs 10
wmc 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A render_create() 0 10 2
A render_auth_info() 0 5 2
A parse_cd() 0 2 1
A render_addr() 0 8 2
A render_info() 0 4 2
A render_check() 0 2 1
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