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

heppy.modules.fee   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %
Metric Value
dl 0
loc 35
rs 10
wmc 3
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
        extension = self.render_extension(request, 'create')
41
        request.sub(extension, 'fee:currency', {}, request.get('fee_currency', 'USD'))
42
        request.sub(extension, 'fee:fee',      {}, request.get('fee_fee'))
43