From 9ca1bbab35fd452a011ecfe9cdda0728af4012cb Mon Sep 17 00:00:00 2001 From: feliixx Date: Thu, 6 Jul 2023 16:13:37 +0200 Subject: [PATCH] API: Add 'object' to the response on Deletion The goal is to be closer to Stripe API. Also, create a new DeletedObject class that will be easier to use. --- localstripe/resources.py | 10 +++++++++- localstripe/server.py | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/localstripe/resources.py b/localstripe/resources.py index 980a8b64..d19ffb98 100644 --- a/localstripe/resources.py +++ b/localstripe/resources.py @@ -158,7 +158,7 @@ def _api_delete(cls, id): if key not in store.keys(): raise UserError(404, 'Not Found') del store[key] - return {'deleted': True, 'id': id} + return DeletedObject(id, cls.object) @classmethod def _api_list_all(cls, url, limit=None, starting_after=None, **kwargs): @@ -244,6 +244,14 @@ def do_expand(path, obj): return obj +class DeletedObject(StripeObject): + deleted = True + + def __init__(self, id, object): + self.id = id + self.object = object + + class Balance(object): object = 'balance' diff --git a/localstripe/server.py b/localstripe/server.py index 081d7b84..508b62ff 100644 --- a/localstripe/server.py +++ b/localstripe/server.py @@ -238,8 +238,7 @@ async def f(request): def api_delete(cls, url): def f(request): id = request.match_info['id'] - ret = cls._api_delete(id) - return json_response(ret if isinstance(ret, dict) else ret._export()) + return json_response(cls._api_delete(id)._export()) return f