124 lines
3.6 KiB
Python
124 lines
3.6 KiB
Python
# rest framework
|
|
from rest_framework.response import Response
|
|
from rest_framework import status
|
|
|
|
|
|
class ResponseMixin:
|
|
SUCCESS = "success" # 200
|
|
FAILURE = "failure" # 400
|
|
ERROR = "error" # 500
|
|
NOT_FOUND = "not_found" # 404
|
|
DELETED = "deleted" # 204
|
|
CREATED = "created" # 201
|
|
|
|
@classmethod
|
|
def success_response(cls, data=None, message=None):
|
|
"""
|
|
Docstring for success_response
|
|
|
|
:param cls: Description
|
|
:param data: Description
|
|
:param message: Description
|
|
"""
|
|
response_data = {
|
|
"status_code": status.HTTP_200_OK,
|
|
"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=response_data["status_code"])
|
|
|
|
@classmethod
|
|
def failure_response(cls, data=None, message=None):
|
|
"""
|
|
Docstring for failure_response
|
|
|
|
:param cls: Description
|
|
:param data: Description
|
|
:param message: Description
|
|
"""
|
|
response_data = {
|
|
"status_code": status.HTTP_400_BAD_REQUEST,
|
|
"status": cls.FAILURE
|
|
}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
if data is not None:
|
|
response_data["data"] = data
|
|
return
|
|
|
|
@classmethod
|
|
def not_found_response(cls, data=None, message=None):
|
|
"""
|
|
Docstring for not_found_response
|
|
|
|
:param cls: Description
|
|
:param data: Description
|
|
:param message: Description
|
|
"""
|
|
response_data = {
|
|
"status_code": status.HTTP_404_NOT_FOUND,
|
|
"status": cls.NOT_FOUND
|
|
}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
if data is not None:
|
|
response_data["data"] = data
|
|
return Response(response_data, status=response_data['status_code'])
|
|
|
|
@classmethod
|
|
def deleted_response(cls,message=None):
|
|
"""
|
|
Docstring for deleted_response
|
|
|
|
:param cls: Description
|
|
:param message: Description
|
|
"""
|
|
|
|
response_data = {
|
|
"status_code": status.HTTP_204_NO_CONTENT,
|
|
"status": cls.DELETED
|
|
}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
return Response(response_data, status=response_data['status_code'])
|
|
|
|
@classmethod
|
|
def created_response(cls, data=None, message=None):
|
|
"""
|
|
Docstring for created_response
|
|
|
|
:param cls: Description
|
|
:param data: Description
|
|
:param message: Description
|
|
"""
|
|
response_data = {
|
|
"status_code": status.HTTP_201_CREATED,
|
|
"status": cls.CREATED
|
|
}
|
|
if message is not None:
|
|
response_data["message"] = message
|
|
if data is not None:
|
|
response_data["data"] = data
|
|
return Response(response_data, status=response_data['status_code'])
|
|
|
|
@classmethod
|
|
def error_response(cls, data=None, message=None):
|
|
"""
|
|
Docstring for error_response
|
|
|
|
:param cls: Description
|
|
:param data: Description
|
|
:param message: Description
|
|
"""
|
|
response_data = {
|
|
"status_code": status.HTTP_500_INTERNAL_SERVER_ERROR,
|
|
"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=response_data["status_code"]) |