Completed
Push — master ( 90f78c...fca8f9 )
by Andrii
01:37
created

fee.render_action()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
c 1
b 0
f 1
dl 0
loc 5
rs 9.4285
1
from ..Module import Module
2
3
class fee(Module):
4
    opmap = {
5
        'chkData':      'descend',
6
    }
7
8
### RESPONSE parsing
9
10
    def parse_cd(self, response, tag):
11
        fee = {}
12
        periodTag           = response.find(tag, 'fee:period')
13
        feeTag              = response.find(tag, 'fee:fee')
14
        fee['name']         = response.find(tag, 'fee:name').text
15
        fee['command']      = response.find(tag, 'fee:command').text
16
        fee['currency']     = response.find(tag, 'fee:currency').text
17
        fee['class']        = response.find(tag, 'fee:class').text
18
        fee['period']       = periodTag.text
19
        fee['unit']         = periodTag.attrib['unit']
20
        fee['fee']          = feeTag.text
21
        fee['description']  = feeTag.attrib['description']
22
        fee['refundable']   = feeTag.attrib['refundable']
23
        fee['grace-period'] = feeTag.attrib['grace-period']
24
25
        fees = response.get('fee:check', {})
26
        fees[fee['name']] = fee
27
        response.set('fee:check', fees)
28
29
### REQUEST rendering
30
31
    def render_check(self, request):
32
        extension = self.render_extension(request, 'check')
33
        for name in request.get('names').itervalues():
34
            domain = request.sub(extension, 'fee:domain')
35
            request.sub(domain, 'fee:name', {}, name)
36
            request.sub(domain, 'fee:command', {}, 'create')
37
            request.sub(domain, 'fee:period', {'unit': 'y'}, '1')
38
39
    def render_create(self, request):
40
        return self.render_action(request, 'create')
41
42
    def render_renew(self, request):
43
        return self.render_action(request, 'renew')
44
45
    def render_action(self, request, action):
46
        extension = self.render_extension(request, action)
47
        data = request.get('fee', {})
48
        request.sub(extension, 'fee:currency', {}, data.get('currency', 'USD'))
49
        request.sub(extension, 'fee:fee',      {}, data.get('fee'))
50