48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from rest_framework import status
|
|
from rest_framework.response import Response
|
|
|
|
|
|
class ResponseMixin:
|
|
SUCCESS = 'success'
|
|
FAILURE = 'failure'
|
|
ERROR = 'error'
|
|
|
|
@classmethod
|
|
def success_response(cls, data=None, message=None, status_code=status.HTTP_200_OK):
|
|
"""
|
|
Returns Success response
|
|
"""
|
|
response_data = {'status_code': status_code, 'status': cls.SUCCESS}
|
|
if message is not None:
|
|
response_data['message'] = message
|
|
if data is not None:
|
|
response_data['data'] = data
|
|
return Response(response_data, status=status_code)
|
|
|
|
@classmethod
|
|
def failure_response(
|
|
cls, data=None, message=None, status_code=status.HTTP_400_BAD_REQUEST
|
|
):
|
|
"""
|
|
Returns Failure Response
|
|
"""
|
|
response_data = {"status_code": status_code, "status": cls.FAILURE}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
if data is not None:
|
|
response_data["data"] = data
|
|
return Response(response_data, status=status_code)
|
|
|
|
@classmethod
|
|
def error_response(
|
|
cls, data=None, message=None, status_code=status.HTTP_500_INTERNAL_SERVER_ERROR
|
|
):
|
|
"""
|
|
Returns Error Response
|
|
"""
|
|
response_data = {"status_code": status_code, "status": cls.ERROR}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
if data is not None:
|
|
response_data["data"] = data
|
|
return Response(response_data, status=status_code) |