forked from erp-dev/erp
feat: message-api for mission via wecomm agent
This commit is contained in:
@@ -108,6 +108,11 @@ class MissionUrgentSerializer(serializers.Serializer):
|
||||
|
||||
class MissionCategoryWriteSerializer(serializers.Serializer):
|
||||
name = serializers.CharField(allow_blank=False, max_length=50)
|
||||
payload_processor = serializers.ChoiceField(
|
||||
choices=mission_models.MissionPayloadProcessorEnum.choices,
|
||||
required=False,
|
||||
allow_blank=True,
|
||||
)
|
||||
|
||||
def validate_name(self, value):
|
||||
value = value.strip()
|
||||
@@ -251,6 +256,7 @@ class MissionCategorySerializer(serializers.ModelSerializer):
|
||||
"id",
|
||||
"merchant",
|
||||
"name",
|
||||
"payload_processor",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
]
|
||||
@@ -402,6 +408,7 @@ class MissionCategoryListCreateView(APIView):
|
||||
category = mission_models.MissionCategory.objects.create(
|
||||
merchant=employee.merchant,
|
||||
name=serializer.validated_data["name"],
|
||||
payload_processor=serializer.validated_data.get("payload_processor", ""),
|
||||
)
|
||||
except IntegrityError:
|
||||
return Response({"name": ["分类名称已存在"]}, status=status.HTTP_400_BAD_REQUEST)
|
||||
@@ -428,10 +435,16 @@ class MissionCategoryDetailView(APIView):
|
||||
context={"employee": employee, "instance": category},
|
||||
)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
update_fields = []
|
||||
if "name" in serializer.validated_data:
|
||||
category.name = serializer.validated_data["name"]
|
||||
update_fields.append("name")
|
||||
if "payload_processor" in serializer.validated_data:
|
||||
category.payload_processor = serializer.validated_data["payload_processor"]
|
||||
update_fields.append("payload_processor")
|
||||
if update_fields:
|
||||
try:
|
||||
category.save(update_fields=["name", "updated_at"])
|
||||
category.save(update_fields=[*update_fields, "updated_at"])
|
||||
except IntegrityError:
|
||||
return Response({"name": ["分类名称已存在"]}, status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response(MissionCategorySerializer(category).data)
|
||||
|
||||
Reference in New Issue
Block a user