def object(self, value):
     if isinstance(value, dict) and value:
         self.__object = RefundResponse(value)
     elif not value:
         raise ValueError('Parameter object is empty')
     else:
         raise TypeError('Invalid object type')
    def find_one(cls, refund_id):
        """
        Get refund information

        :param refund_id:
        :return: RefundResponse
        """
        instance = cls()
        if not isinstance(refund_id, str) or not refund_id:
            raise ValueError('Invalid payment_id value')
        path = instance.base_path + '/' + refund_id
        response = instance.client.request(HttpVerb.GET, path)
        return RefundResponse(response)
示例#3
0
    def test_response_cast(self):
        response = RefundResponse({
            'id': '21b23b5b-000f-5061-a000-0674e49a8c10',
            'payment_id': '21b23365-000f-500b-9000-070fa3554403',
            'created_at': "2017-11-30T15:11:33+00:00",
            'amount': {
                "value": 250.0,
                "currency": Currency.RUB
            },
            'receipt_registration': 'pending',
            'comment': 'test comment',
            'status': 'pending'
        })

        self.assertEqual(response.id, '21b23b5b-000f-5061-a000-0674e49a8c10')
        self.assertEqual(response.payment_id, '21b23365-000f-500b-9000-070fa3554403')
        self.assertEqual(response.created_at, "2017-11-30T15:11:33+00:00")
        self.assertEqual(response.receipt_registration, 'pending')
        self.assertEqual(response.comment, 'test comment')
        self.assertIsInstance(response.amount, Amount)
        self.assertEqual(response.status, 'pending')
    def create(cls, params, idempotency_key=None):
        """
        Create refund

        :param params: data passed to API
        :param idempotency_key:
        :return:
        """
        instance = cls()
        path = cls.base_path
        if not idempotency_key:
            idempotency_key = uuid.uuid4()
        headers = {'Idempotence-Key': str(idempotency_key)}

        if isinstance(params, dict):
            params_object = RefundRequest(params)
        elif isinstance(params, RefundRequest):
            params_object = params
        else:
            raise TypeError('Invalid params value type')

        response = instance.client.request(HttpVerb.POST, path, None, headers,
                                           params_object)
        return RefundResponse(response)
 def items(self, value):
     if isinstance(value, list):
         self.__items = [RefundResponse(refund) for refund in value]
     else:
         self.__items = value