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)
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