first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -0,0 +1,66 @@
|
||||
from django.shortcuts import render
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework import serializers
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import status
|
||||
from apps.reminder.models import Reminder as ReminderModel
|
||||
from apps.reminder.services import create_or_edit_reminder_lead, delete_reminder_lead
|
||||
from utils.tools import inline_serializer
|
||||
from apps.reminder.selectors import reminder_list
|
||||
# Create your views here.
|
||||
|
||||
|
||||
class ReminderListApiView(APIView):
|
||||
|
||||
class OutputSerializer(serializers.ModelSerializer):
|
||||
|
||||
customer = inline_serializer(many=False, fields={
|
||||
'id': serializers.IntegerField(),
|
||||
'name_family': serializers.CharField(),
|
||||
})
|
||||
|
||||
lead = inline_serializer(many=False, fields={
|
||||
'id': serializers.IntegerField(),
|
||||
'title': serializers.CharField(),
|
||||
})
|
||||
|
||||
note = inline_serializer(many=False, fields={
|
||||
'id': serializers.IntegerField(),
|
||||
'desc': serializers.CharField(),
|
||||
})
|
||||
|
||||
class Meta:
|
||||
model = ReminderModel
|
||||
fields = '__all__'
|
||||
|
||||
def get(self, request):
|
||||
reminders = reminder_list(request=request)
|
||||
output = self.OutputSerializer(reminders, many=True)
|
||||
|
||||
return Response(data=output.data, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
class ReminderLeadCreateUpdateApiView(APIView):
|
||||
|
||||
class InputSerializers(serializers.Serializer):
|
||||
lead_id = serializers.IntegerField(required=True)
|
||||
datetime = serializers.DateTimeField(required=True)
|
||||
desc = serializers.CharField(required=False, allow_null=True)
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.InputSerializers(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
output = create_or_edit_reminder_lead(request, **serializer.validated_data)
|
||||
|
||||
return Response(data={'id': output.id}, status=status.HTTP_201_CREATED)
|
||||
|
||||
|
||||
class ReminderLeadDeleteApiView(APIView):
|
||||
|
||||
def delete(self, request, lead_id):
|
||||
output = delete_reminder_lead(request, lead_id=lead_id)
|
||||
|
||||
return Response(data={'status': 'removed'}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
Reference in new issue
Block a user