def request(self, method, url, params=None): if params is None: params = self._retrieve_params requestor = api.APIClient(self.api_key) response, api_key = requestor.request(method, url, params) if isinstance(response, list): for item in response: if 'object' not in list(item.keys()): item.update({'object': self.get('item_type')}) data = { 'object': 'list', 'count': len(response), 'url': url, 'data': response, "item_type": self.get('item_type') } response = data if isinstance(response, dict) and self.get('item_type'): if 'object' not in list(response.keys()): response.update({'object': self.get('item_type')}) return convert_to_openpay_object(response, api_key)
def retrieve_as_merchant(cls, payout_id): params = {} api_key = getattr(cls, 'api_key', openpay.api_key) requestor = api.APIClient(api_key) url = "{0}/{1}".format(cls.class_url(), payout_id) response, api_key = requestor.request('get', url, params) return convert_to_openpay_object(response, api_key, 'payout')
def retrieve_as_merchant(cls, id): params = {} api_key = getattr(cls, 'api_key', openpay.api_key) cls._as_merchant = True requestor = api.APIClient(api_key) uid = utf8(id) url = "%s/%s" % (cls.class_url(), quote_plus(uid)) response, api_key = requestor.request('get', url, params) return convert_to_openpay_object(response, api_key, 'charge')
def create(cls, api_key=None, **params): requestor = api.APIClient(api_key) url = cls.class_url(params) if "clean_params" in dir(cls): params = cls.clean_params(params) response, api_key = requestor.request('post', url, params) klass_name = cls.__name__.lower() return convert_to_openpay_object(response, api_key, klass_name)
def refund(cls, fee_id, **params): if hasattr(cls, 'api_key'): api_key = cls.api_key else: api_key = openpay.api_key requestor = api.APIClient(api_key) url = cls.class_url() url = "{0}/{1}/refund".format(url, fee_id) response, api_key = requestor.request('post', url, params) return convert_to_openpay_object(response, api_key, 'fee')
def as_merchant(cls): params = {} if hasattr(cls, 'api_key'): api_key = cls.api_key else: api_key = openpay.api_key requestor = api.APIClient(api_key) url = cls.class_url() response, api_key = requestor.request('get', url, params) return convert_to_openpay_object(response, api_key, 'charge')
def all(cls, api_key=None, **params): requestor = api.APIClient(api_key) url = cls.class_url(params) response, api_key = requestor.request('get', url, params) klass_name = cls.__name__.lower() for item in response: if 'object' not in list(item.keys()): item.update({'object': klass_name}) data = { 'object': 'list', 'count': len(response), 'url': url, 'data': response, 'item_type': klass_name, } return convert_to_openpay_object(data, api_key)
def create_as_merchant(cls, **params): api_key = getattr(cls, 'api_key', openpay.api_key) requestor = api.APIClient(api_key) response, api_key = requestor.request('post', cls.class_url(), params) return convert_to_openpay_object(response, api_key, 'payout')
def close_dispute(self): requestor = api.APIClient(self.api_key) url = self.instance_url() + '/dispute/close' response, api_key = requestor.request('post', url, {}) self.refresh_from({'dispute': response}, api_key, True) return self.dispute
def update_dispute(self, **params): requestor = api.APIClient(self.api_key) url = self.instance_url() + '/dispute' response, api_key = requestor.request('post', url, params) self.refresh_from({'dispute': response}, api_key, True) return self.dispute