summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozhttpd/mozhttpd/handlers.py
blob: 44f657031a7055a432978d9d67abb5d7cc7836eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

import json


def json_response(func):
    """Translates results of 'func' into a JSON response."""

    def wrap(*a, **kw):
        (code, data) = func(*a, **kw)
        json_data = json.dumps(data)
        return (
            code,
            {"Content-type": "application/json", "Content-Length": len(json_data)},
            json_data,
        )

    return wrap