def login(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) user = user_services.get_and_authenticate_user( **serializer.validated_data) data = serializers.AuthUserSerializer(user).data return response.Ok(data)
def partial_update(self, request): """Update logged in user profile""" instance = self.get_object() serializer = self.get_serializer(instance, data=request.data, partial=True) serializer.is_valid(raise_exception=True) serializer.save() return response.Ok(serializer.data)
def password_reset(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) user = user_services.get_user_by_email(serializer.data['email']) if user: services.send_password_reset_mail(user) return response.Ok({ 'message': 'Further instructions will be sent to the email if it exists' })
def partial_update(self, request, *args, **kargs): serializer_class = self.get_serializer_class() instance = self.get_object() if 'region_coordinates' in request.data: request.data['region_coordinates'] = get_polygon_object( request.data['region_coordinates']) serializer = serializer_class(instance, request.data, partial=True) serializer.is_valid(raise_exception=True) serializer.save() return response.Ok(serializer.data)
def search(self, request, *args, **kargs): if 'longitude' not in request.data or 'latitude' not in request.data: return response.BadRequest( {"error": "Both 'longitude' and 'latitude' required"}) else: if type(request.data['longitude']) != float or type( request.data['latitude']) != float: return response.BadRequest({ "error": "Both 'longitude' and 'latitude' should be of type float" }) else: point_object = Point( [request.data['longitude'], request.data['latitude']]) queryset = self.get_queryset() for region in queryset: if not region.is_coordinate_inclusive(point_object): queryset = queryset.exclude(id=region.id) serializer = self.get_serializer(queryset, many=True) return response.Ok(serializer.data)
def all(self, request): """Listing all the active users""" serializer = self.get_serializer(self.queryset, many=True) return response.Ok(serializer.data)
def list(self, request): """Get logged in user profile""" serializer = self.get_serializer(self.get_object()) return response.Ok(serializer.data)
def logout(self, request): """ Calls Django logout method; Does not work for UserTokenAuth. """ logout(request) return response.Ok({"success": "Successfully logged out."})