コード例 #1
0
 def refund_open_amount_xml(self, amount_in_cents, refund_apply_order):
     elem = ElementTree.Element(self.nodename)
     elem.append(
         Resource.element_for_value('refund_apply_order',
                                    refund_apply_order))
     elem.append(
         Resource.element_for_value('amount_in_cents', amount_in_cents))
     return elem
コード例 #2
0
    def _refund_open_amount_xml(self, amount_in_cents, refund_options):
        elem = ElementTreeBuilder.Element(self.nodename)
        elem.append(
            Resource.element_for_value('amount_in_cents', amount_in_cents))

        # Need to sort the keys for tests to pass in python 2 and 3
        # Can remove `sorted` when we drop python 2 support
        for k, v in sorted(iteritems(refund_options)):
            elem.append(Resource.element_for_value(k, v))
        return elem
コード例 #3
0
    def refund_line_items_xml(self, line_items):
        elem = ElementTree.Element(self.nodename)
        line_items_elem = ElementTree.Element('line_items')

        for item in line_items:
            adj_elem = ElementTree.Element('adjustment')
            adj_elem.append(Resource.element_for_value('uuid',
                item['adjustment'].uuid))
            adj_elem.append(Resource.element_for_value('quantity',
            item['quantity']))
            adj_elem.append(Resource.element_for_value('prorate', item['prorate']))
            line_items_elem.append(adj_elem)

        elem.append(line_items_elem)
        return elem
コード例 #4
0
    def refund_line_items_xml(self, line_items):
        elem = ElementTree.Element(self.nodename)
        line_items_elem = ElementTree.Element('line_items')

        for item in line_items:
            adj_elem = ElementTree.Element('adjustment')
            adj_elem.append(
                Resource.element_for_value('uuid', item['adjustment'].uuid))
            adj_elem.append(
                Resource.element_for_value('quantity', item['quantity']))
            adj_elem.append(
                Resource.element_for_value('prorate', item['prorate']))
            line_items_elem.append(adj_elem)

        elem.append(line_items_elem)
        return elem
コード例 #5
0
    def _refund_line_items_xml(self, line_items, refund_options):
        elem = ElementTreeBuilder.Element(self.nodename)

        line_items_elem = ElementTreeBuilder.Element('line_items')

        for item in line_items:
            adj_elem = ElementTreeBuilder.Element('adjustment')
            adj_elem.append(
                Resource.element_for_value('uuid', item['adjustment'].uuid))
            adj_elem.append(
                Resource.element_for_value('quantity', item['quantity']))
            adj_elem.append(
                Resource.element_for_value('prorate', item['prorate']))
            line_items_elem.append(adj_elem)

        elem.append(line_items_elem)

        # Need to sort the keys for tests to pass in python 2 and 3
        # Can remove `sorted` when we drop python 2 support
        for k, v in sorted(iteritems(refund_options)):
            elem.append(Resource.element_for_value(k, v))

        return elem
コード例 #6
0
    def generate(self, amount):
        elem = ElementTree.Element(self.nodename)
        elem.append(Resource.element_for_value('number_of_unique_codes', amount))

        url = urljoin(self._url, '%s/generate' % (self.coupon_code, ))
        body = ElementTree.tostring(elem, encoding='UTF-8')

        response = self.http_request(url, 'POST', body, { 'Content-Type':
            'application/xml; charset=utf-8' })

        if response.status not in (200, 201, 204):
            self.raise_http_error(response)

        return Page.page_for_url(response.getheader('Location'))
コード例 #7
0
    def generate(self, amount):
        elem = ElementTree.Element(self.nodename)
        elem.append(Resource.element_for_value('number_of_unique_codes', amount))

        url = urljoin(self._url, '%s/generate' % (self.coupon_code, ))
        body = ElementTree.tostring(elem, encoding='UTF-8')

        response = self.http_request(url, 'POST', body, { 'Content-Type':
            'application/xml; charset=utf-8' })

        if response.status not in (200, 201, 204):
            self.raise_http_error(response)

        return Page.page_for_url(response.getheader('Location'))
コード例 #8
0
    def pause(self, remaining_pause_cycles):
        """Pause a subscription"""
        url = urljoin(self._url, '/pause')
        elem = ElementTreeBuilder.Element(self.nodename)
        elem.append(
            Resource.element_for_value('remaining_pause_cycles',
                                       remaining_pause_cycles))
        body = ElementTree.tostring(elem, encoding='UTF-8')

        response = self.http_request(
            url, 'PUT', body,
            {'Content-Type': 'application/xml; charset=utf-8'})

        if response.status not in (200, 201, 204):
            self.raise_http_error(response)

        self.update_from_element(ElementTree.fromstring(response.read()))
コード例 #9
0
 def refund_open_amount_xml(self, amount_in_cents):
     elem = ElementTree.Element(self.nodename)
     elem.append(Resource.element_for_value('amount_in_cents',
         amount_in_cents))
     return elem
コード例 #10
0
 def refund_open_amount_xml(self, amount_in_cents, refund_method):
     elem = ElementTreeBuilder.Element(self.nodename)
     elem.append(Resource.element_for_value('refund_method', refund_method))
     elem.append(
         Resource.element_for_value('amount_in_cents', amount_in_cents))
     return elem