diff options
| author | Alexis Metaireau <alexis@notmyidea.org> | 2011-09-13 22:58:53 +0200 |
|---|---|---|
| committer | Alexis Metaireau <alexis@notmyidea.org> | 2011-09-13 22:58:53 +0200 |
| commit | b0d41291afade8aec86502d07d1d29d000ff1bca (patch) | |
| tree | 75116f45eaa6915e554d0c6158069462063733fa /budget/rest.py | |
| parent | 8528526f0b6dc8828247ef03f11e4894580f8dd5 (diff) | |
| download | ihatemoney-mirror-b0d41291afade8aec86502d07d1d29d000ff1bca.zip ihatemoney-mirror-b0d41291afade8aec86502d07d1d29d000ff1bca.tar.gz ihatemoney-mirror-b0d41291afade8aec86502d07d1d29d000ff1bca.tar.bz2 | |
API: Create and Update support
Diffstat (limited to 'budget/rest.py')
| -rw-r--r-- | budget/rest.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/budget/rest.py b/budget/rest.py index 8ade14b..f237217 100644 --- a/budget/rest.py +++ b/budget/rest.py @@ -114,7 +114,7 @@ def need_auth(authentifier, name=None, remove_attr=True): del kwargs["%s_id" % name] return func(*args, **kwargs) else: - raise werkzeug.exceptions.Forbidden() + return 403, "Forbidden" return wrapped return wrapper @@ -128,13 +128,15 @@ def serialize(func): # get the mimetype mime = request.accept_mimetypes.best_match(SERIALIZERS.keys()) data = func(*args, **kwargs) + serializer = SERIALIZERS[mime] - if isinstance(data, werkzeug.Response): - return data - else: - # serialize it - return werkzeug.Response(SERIALIZERS[mime].encode(data), - status=200, mimetype=mime) + status = 200 + if len(data) == 2: + status, data = data + + # serialize it + return werkzeug.Response(serializer.encode(data), + status=status, mimetype=mime) return wrapped |
