import sys import traceback from rest_framework.response import Response status_code_message_map = { 204: 'Successfully deleted entity.', 403: 'User does not have access to this entity.', 404: 'No entity matches the given query', 500: 'Something went wrong!' } def build_response(status_code=200, data=None, message=None): response = Response() response.status_code = status_code if response.status_code == 200: response.data = data else: response.data = {} response.data['message'] = message if message else status_code_message_map.get(status_code) exc_info = sys.exc_info() exception_info = ''.join(traceback.format_exception(*exc_info)) response.data['details'] = exception_info return response