def post(self, request): social_media_type = request.data.get("social_media_type") link = request.data.get("link") if social_media_type is None or link is None: return Response( { "success": False, "message": "Required Param social_media_type, link is missing." }, status=400) user_detail_exist = True try: user_details = UserDetail.objects.get(user=request.user.id) except UserDetail.DoesNotExist: user_detail_exist = False if social_media_type == "Facebook": if user_detail_exist: user_details.facebook_link = link else: data = {"facebook_link": link, "user": request.user.id} elif social_media_type == "Youtube": if user_detail_exist: user_details.youtube_link = link else: data = {"youtube_link": link, "user": request.user.id} elif social_media_type == "Instagram": if user_detail_exist: user_details.instagram_link = link else: data = {"instagram_link": link, "user": request.user.id} else: return Response({ "success": False, "message": "Invalid social_media_type param is provided." }) if user_detail_exist: user_details.save() serializer = UserDetailSerializer(user_details, many=False) return Response({ "success": True, "message": "Link Updated", "data": serializer.data }) else: user_detail_serializer = UserDetailSerializer(data=data) if user_detail_serializer.is_valid(): instance = user_detail_serializer.save() serializer = UserDetailSerializer(instance, many=False) return Response({ "success": True, "message": "Link Updated", "data": serializer.data }) return Response({ "success": False, "message": user_detail_serializer.errors })
def post(self, request, *args, **kwargs): user = BusinessUser.get_user_detail(request) if isinstance(user, Exception): return Response({'Error': user.args}, status=status.HTTP_400_BAD_REQUEST) serializer = UserDetailSerializer(data=user) if serializer.is_valid(): return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def test_expected_fields(self): """Tests expected serializer fields for validated data email """ user_data = factory.build(dict, FACTORY_CLASS=UserFactory) serializer = UserDetailSerializer(data=user_data) is_valid = serializer.is_valid() print("Errors: ", serializer.errors) assert is_valid, "serializer validation test" assert serializer.validated_data.keys() == set(['email'])
def post(self, request, *args, **kwargs): user_detail = self.get_user_object(request) if isinstance(user_detail, Exception): return Response({'Detail': user_detail.args}, status=status.HTTP_400_BAD_REQUEST) serializer = UserDetailSerializer(data=user_detail) if not serializer.is_valid(): return Response({'Detail': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.data, status=status.HTTP_200_OK)
def test_user_detail_serializer(self): """ Testing UserDetailSerializer serializer """ user_data = { "email": fake.email(), "first_name": fake.first_name(), "last_name": fake.last_name(), "phone": fake.phone_number(), "role_id": self.role.id, "password": "******", "date_of_add": datetime.datetime.now(), "login": "******", } serializer = UDS(data=user_data) valid = serializer.is_valid() self.assertTrue(valid)