def refresh_from(self,
                     values,
                     api_key=None,
                     partial=False,
                     last_response=None):
        self.api_key = api_key or getattr(values, 'api_key', None)
        self._last_response = last_response

        # Wipe old state before setting new.  This is useful for e.g.
        # updating a customer, where there is no persistent card
        # parameter.  Mark those values which don't persist as transient
        if partial:
            self._unsaved_values = (self._unsaved_values - set(values))
        else:
            removed = set(self.keys()) - set(values)
            self._transient_values = self._transient_values | removed
            self._unsaved_values = set()
            self.clear()

        self._transient_values = self._transient_values - set(values)

        for k, v in six.iteritems(values):
            super(PingppObject,
                  self).__setitem__(k,
                                    util.convert_to_pingpp_object(v, api_key))

        self._previous = values
Beispiel #2
0
 def retrieve_refund(cls, id, refund_id, api_key=None, **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s/order_refunds/%s" % (cls.class_url(),
                                       quote_plus(util.utf8(id)),
                                       quote_plus(util.utf8(refund_id)))
     response, api_key = requestor.request('get', url, params)
     return util.convert_to_pingpp_object(response, api_key)
 def list(cls, api_key=None, **params):
     requestor = api_requestor.APIRequestor(api_key,
                                            api_base=cls.api_base())
     url = cls.class_url()
     response, api_key = requestor.request('get', url, params)
     pingpp_object = util.convert_to_pingpp_object(response, api_key)
     pingpp_object._retrieve_params = params
     return pingpp_object
    def request(self, method, url, params=None, headers=None):
        if params is None:
            params = self._retrieve_params

        requestor = api_requestor.APIRequestor(key=self.api_key,
                                               api_base=self.api_base())
        response, api_key = requestor.request(method, url, params, headers)

        return util.convert_to_pingpp_object(response, api_key)
 def create_transfer_channel(cls,
                             sub_app,
                             api_key=None,
                             app=None,
                             **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s/transfer_channels" % (cls.class_url(app),
                                        quote_plus(util.utf8(sub_app)))
     response, api_key = requestor.request('post', url, params)
     return util.convert_to_pingpp_object(response, api_key)
 def delete_channel(cls,
                    sub_app,
                    channel,
                    api_key=None,
                    app=None,
                    **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s/channels/%s" % (cls.class_url(app),
                                  quote_plus(util.utf8(sub_app)),
                                  quote_plus(util.utf8(channel)))
     response, api_key = requestor.request('delete', url, params)
     return util.convert_to_pingpp_object(response, api_key)
Beispiel #7
0
 def delete(cls, user, id, app=None, api_key=None, **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s" % (cls.class_url(app, user), quote_plus(util.utf8(id)))
     response, api_key = requestor.request('delete', url, params)
     return util.convert_to_pingpp_object(response, api_key)
Beispiel #8
0
 def list_charges(cls, id, api_key=None, **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s/charges" % (cls.class_url(), quote_plus(util.utf8(id)))
     response, api_key = requestor.request('get', url, params)
     return util.convert_to_pingpp_object(response, api_key)
    def create(cls, api_key=None, app=None, **params):
        requestor = api_requestor.APIRequestor(api_key)
        url = cls.class_url(app)
        response, api_key = requestor.request('post', url, params)

        return util.convert_to_pingpp_object(response, api_key)
Beispiel #10
0
 def reverse(cls, id, api_key=None, **params):
     url = cls.class_url() + '/%s/reverse' % quote_plus(util.utf8(id))
     requestor = api_requestor.APIRequestor(api_key)
     response, api_key = requestor.request('post', url, params)
     return util.convert_to_pingpp_object(response, api_key)
Beispiel #11
0
 def _modify(cls, url, api_key=None, app=None, **params):
     requestor = api_requestor.APIRequestor(api_key)
     response, api_key = requestor.request('put', url, params)
     return util.convert_to_pingpp_object(response, api_key)
Beispiel #12
0
 def refund(cls, id, api_key=None, app=None, **params):
     requestor = api_requestor.APIRequestor(api_key)
     url = "%s/%s/refunds" % (cls.class_url(app), quote_plus(util.utf8(id)))
     response, api_key = requestor.request('post', url, params)
     return util.convert_to_pingpp_object(response, api_key)