40045-vm/venv/lib/python3.11/site-packages/stripe/_updateable_api_resource.py
2026-05-20 10:50:30 +00:00

32 lines
1.1 KiB
Python

from stripe import _util
from stripe._api_resource import APIResource
from urllib.parse import quote_plus
from typing import TypeVar, cast
from stripe._stripe_object import StripeObject
T = TypeVar("T", bound=StripeObject)
class UpdateableAPIResource(APIResource[T]):
@classmethod
def modify(cls, sid, **params) -> T:
url = "%s/%s" % (cls.class_url(), quote_plus(sid))
return cast(T, cls._static_request("post", url, params=params))
@_util.deprecated(
"The `save` method is deprecated and will be removed in a future major version of the library. Use the class method `modify` on the resource instead."
)
def save(self, idempotency_key=None):
updated_params = self.serialize(None)
if updated_params:
updated_params["idempotency_key"] = idempotency_key
self._request_and_refresh(
"post",
self.instance_url(),
params=updated_params,
usage=["save"],
)
else:
_util.logger.debug("Trying to save already saved object %r", self)
return self