| 
              # -*- coding: utf-8 -*-
from json_response import JsonpResponse, JsonResponse
from StatusCode import StatusCodeField
def response_data(status_code=200, message=None, description=None, data={}, **kwargs):
    return dict({
        'status': status_code,
        'message': message,
        'description': description,
        'data': data,
    }, **kwargs)
def response(status_code=200, message=None, description=None, data={}, msg_args=[], msg_kwargs={}, desc_args=[], desc_kwargs={}, request=None, callback=None, **kwargs):
    # Final Message and Description
    message, description = (message or status_code.message, description or status_code.description) if isinstance(status_code, StatusCodeField) else (message, description)
    # Final Response Data
    resp_data = response_data(status_code, (message or '').format(*msg_args, **msg_kwargs), (description or '').format(*desc_args, **desc_kwargs), data, **kwargs)
    # Assign Callback
    callback = callback or (request and request.GET.get('callback'))
    # Call JsonResponse or JsonpResponse
    return JsonpResponse(callback, resp_data, safe=False) if callback else JsonResponse(resp_data, safe=False)
 
  |