# Copyright (C) 2017 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import apifw def response(status, body, headers): return apifw.Response( { 'status': status, 'body': body, 'headers': headers, } ) def ok_response(body, headers=None): if headers is None: headers = {} if 'Content-Type' not in headers: headers.update({ 'Content-Type': 'application/json', }) return response(apifw.HTTP_OK, body, headers) def not_found_response(): body = 'Not Found\n' headers = {} return response(apifw.HTTP_NOT_FOUND, body, headers) def created_response(body, location): headers = { 'Content-Type': 'application/json', 'Location': location, } return response(apifw.HTTP_CREATED, body, headers) def bad_request_response(body): headers = { 'Content-Type': 'text/plain', } return response(apifw.HTTP_BAD_REQUEST, body, headers) def unauthorized_response(body): headers = { 'Content-Type': 'text/plain', } return response(apifw.HTTP_UNAUTHORIZED, body, headers) def found_response(body, location): headers = { 'Content-Type': 'text/plain', 'Location': location, } # TODO: use apifw.FOUND_CREATED when available return response(302, body, headers)