def joinEvent(request, pk, id): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) event = Event.objects.get(id = pk) user = User.objects.get(id = id) event.users_going.add(user) return Response(print("JOINED!!!!!!!"))
def eventList(request): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) users = User.objects.all() events = Event.objects.all() serializer = EventSerializer(events, many = True) return Response(serializer.data)
def leaveEvent(request, pk, id): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) event = Event.objects.get(id = pk) user = User.objects.get(id = id) event.users_going.remove(user) return Response(print("LEFT!!!!!!!"))
def attendingList(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) user = User.objects.get(id = pk) attending_event = user.users_going_related.all() serializer = EventSerializer(attending_event, many = True) return Response(serializer.data)
def eventDetail(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) event = Event.objects.get(id = pk) print(event) serializer = EventSerializer(event, many = False) return Response(serializer.data)
def add_post_view(request): authentication_classes(TokenAuthentication, ) user_data = jwt.decode(bytes(request.headers.get('token'), 'utf-8'), SECRET_KEY, ['HS256']) user = User.objects.get(username=user_data['username']) try: serialized_post = PostSerializer(data=request.data, context={'request': request}) if serialized_post.is_valid(): title = str(serialized_post.initial_data['title']) content = str(serialized_post.initial_data['content']) if title.strip() == '' or content.strip() == '': data = {'Error': 'At least one required field is empty'} status_code = status.HTTP_400_BAD_REQUEST else: Post.objects.create(creator=user, title=title, content=content) data = {"Result": "Post was added"} status_code = status.HTTP_200_OK else: data = { key: str(value[0]) for key, value in serialized_post.errors.items() } status_code = status.HTTP_400_BAD_REQUEST except Exception as e: data = {'Error': 'Bad request ' + str(e)} status_code = status.HTTP_400_BAD_REQUEST return Response(data=data, status=status_code)
def notAttendingList(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) user = User.objects.get(id = pk) event_not_attending = Event.objects.exclude(users_going = user.id) serializer = EventSerializer(event_not_attending, many = True) return Response(serializer.data)
def home(request, format=None): # query = Member.objects.all() authentication_classes(TokenAuthentication, ) print(request.user) if request.user: return JsonResponse({"Hello": str(request.user.username)}, safe=True) else: return JsonResponse({"Please": "login First"}, safe=True)
def hostingList(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) print(pk) user = User.objects.get(id = pk) events = Event.objects.filter(event_by_user_id = user.id) serializer = EventSerializer(events, many = True) print(serializer.data) return Response(serializer.data)
def eventCreate(request): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) serializer = EventSerializer(data = request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, print(serializer.data, "Event created!!")) else: return Response(serializer.data, print(serializer.errors, "Error in event Create View"))
def userUpdate(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) user = User.objects.get(id = pk) print("THIS IS THE DATA BEING RECIEVED = ", request.data) serializer = UserSerializer(instance = user, data = request.data) if serializer.is_valid(): serializer.save() print("DATA = ", serializer.data) return Response(serializer.data, print("User updated!!!!")) print("ERRORS = ", serializer.errors) return Response(serializer.errors, print("Update Failed!!!"))
def get_all_posts_view(request): authentication_classes(TokenAuthentication, ) user_data = jwt.decode(bytes(request.headers.get('token'), 'utf-8'), SECRET_KEY, ['HS256']) user = User.objects.get(username=user_data['username']) paginator = CustomPagination() posts = Post.objects.all() result_page = paginator.paginate_queryset(posts, request) serializer = PostsOutputSerializer(result_page, many=True, context={'request': request}) return paginator.get_paginated_response(serializer.data)
def as_view(cls, *args, **kwargs): """ Set DRF attributes in the view """ view = super(DRFAuthenticatedGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes((AllowAny,))(view) view = authentication_classes(api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = api_view(["GET", "POST"])(view) return view
def as_view(cls, *args, **kwargs): view = super(DRFAuthenticatedGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes((IsAuthenticated, ))(view) view = authentication_classes( api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = api_view(['GET', 'POST'])(view) return view
class RingAlarmView(View): @method_decorator(authentication_classes([])) @method_decorator(permission_classes([])) @method_decorator(csrf_exempt) def dispatch(self, *args, **kwargs): return super().dispatch(*args, **kwargs) def post(self, request): body_unicode = request.body.decode('utf-8') body_data = json.loads(body_unicode) name=body_data['name'] reason=body_data['reason'] recaptcha_response=body_data['recaptchaValue'] url = 'https://www.google.com/recaptcha/api/siteverify' values = { 'secret': os.environ['CAPTCHA_SECRET'], 'response': recaptcha_response } data = urllib.parse.urlencode(values).encode() req = urllib.request.Request(url, data=data) response = urllib.request.urlopen(req) recaptcharesult = json.loads(response.read().decode()) bot=recaptcharesult['success'] alarm=RingAlarm(name=name, reason=reason, recaptcha=bot) result=alarm.do_work() response = JsonResponse(result) return response
def as_view(cls, *args, **kwargs): """Add the relevant DRF-view logic to the view.""" view = super(AuthenticatedGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes((IsUserAllowed, ))(view) view = authentication_classes( (CsrfExemptSessionAuthentication, ))(view) view = api_view(["GET", "POST"])(view) return view
class ApiViewAuthenticationMixin(object): @method_decorator(api_view(['POST'])) @method_decorator(authentication_classes(TokenAuthentication)) @method_decorator(permission_classes(IsAuthenticated, )) @method_decorator(csrf_exempt) def dispatch(self, *args, **kwargs): return super(ApiViewAuthenticationMixin, self).dispatch(*args, **kwargs)
def userUpdate(request, pk): authentication_classes(TokenAuthentication, ) permission_classes = (permissions.IsAuthenticated, ) user = User.objects.get(id=pk) serializer = UserSerializer(instance=user, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, ) # POSSIBLY IMPLEMENT DELETE PATIENT ACCOUNT THROUGH HERE OR ADMIN PAGE # @api_view(['DELETE']) # def userDelete(request, pk): # user = User.objects.get(id = pk) # user.delete() # return Response('User successfully deleted!')
def as_view(cls: "DRFGraphQL", schema: Schema) -> "DRFGraphQL": """Wraps the graphql view in the authentication_classes, permission_classes and api_view functions available from DRF. """ view = super().as_view(graphiql=True, schema=schema) view = authentication_classes(api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = permission_classes(api_settings.DEFAULT_PERMISSION_CLASSES)(view) return api_view(http_method_names=("GET", "POST"))(view)
def as_view(cls, *args, **kwargs): view = super(PrivateGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes(( TokenHasReadWriteScope, FireBaseAuth, ))(view) view = authentication_classes((OAuth2Authentication, ))(view) view = api_view(['POST', 'GET'])(view) return view
def as_view(cls, *args, **kwargs): view = super(DOTAuthenticatedGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes(( IsAuthenticated, TokenHasReadWriteScope, ))(view) # add permissions to the view view = authentication_classes((OAuth2Authentication, ))(view) view = api_view(['POST'])(view) return view
def as_view(cls, *args, **kwargs): view = super().as_view(*args, **kwargs) view = permission_classes((IsAuthenticated,))(view) view = authentication_classes(api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = parser_classes([JSONParser])(view) view = throttle_classes(api_settings.DEFAULT_THROTTLE_CLASSES)(view) view = api_view(["GET", "POST"])(view) view = csrf_exempt(view) return view
def as_view(cls, *args, **kwargs): view = super(DRFAuthenticatedGraphQLView, cls).as_view(*args, **kwargs) view = permission_classes((IsAuthenticated, ))(view) view = authentication_classes(( JSONWebTokenAuthentication, TokenAuthentication, ))(view) #view = authentication_classes((TokenAuthentication,))(view) view = api_view(['POST'])(view) return view
def as_view(cls, *args, **kwargs): view = super().as_view(*args, **kwargs) # if settings.DEBUG is False: # view = permission_classes((IsAuthenticated,))(view) # else: # view = permission_classes((AllowAny,))(view) view = permission_classes((IsAuthenticated, ))(view) view = authentication_classes( api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = api_view(["GET", "POST"])(view) return view
class SensorAPIRoomListView(APIView): @method_decorator( authentication_classes(( TokenAuthentication, SessionAuthentication, OAuth2Authentication, ))) def get(self, request, id, format=None): items = Room.objects.get(pk=id).sensor_set.all() paginator = PageNumberPagination() result_page = paginator.paginate_queryset(items, request) serializer = RoomSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
class RemoteControllerSignalAPIView(APIView): @method_decorator( authentication_classes(( TokenAuthentication, SessionAuthentication, OAuth2Authentication, ))) def post(self, request, format=None): try: r = SendRemoteControllerSignal(request.POST.dict()) except Exception as e: print('snafu') return Response(str(r))
class SensorAPIListView(APIView): @method_decorator( authentication_classes(( TokenAuthentication, SessionAuthentication, OAuth2Authentication, ))) def get(self, request, format=None): items = Sensor.objects.filter(system__users=request.user) paginator = PageNumberPagination() result_page = paginator.paginate_queryset(items, request) serializer = SensorSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
class ControlledDeviceAPIListView(APIView): @method_decorator( authentication_classes(( TokenAuthentication, SessionAuthentication, OAuth2Authentication, ))) def get(self, request, format=None): items = ControlledDevice.objects.all() paginator = PageNumberPagination() result_page = paginator.paginate_queryset(items, request) serializer = ControlledDeviceSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def set_mark_view(request): authentication_classes(TokenAuthentication, ) user_data = jwt.decode(bytes(request.headers.get('token'), 'utf-8'), SECRET_KEY, ['HS256']) user = User.objects.get(username=user_data['username']) try: serialized = MarkSerializer(data=request.data, context={'request': request}) if serialized.is_valid(): mark_data = serialized.data post_id = int(mark_data['post_id']) like = int(mark_data['like']) unlike = int(mark_data['unlike']) post = Post.objects.get(id=post_id) if like > unlike: post.likes.add(user) else: if user in post.likes.all(): post.likes.remove(user) data = {"Result": "Mark was successfully changed"} status_code = status.HTTP_201_CREATED else: data = { key: str(value[0]) for key, value in serialized.errors.items() } status_code = status.HTTP_400_BAD_REQUEST except Exception as e: data = {'Error': 'Bad request \n' + str(e)} status_code = status.HTTP_400_BAD_REQUEST return Response(data=data, status=status_code)
class RemoteControlCodeAPIView(APIView): @method_decorator( authentication_classes(( TokenAuthentication, SessionAuthentication, OAuth2Authentication, ))) def get(self, request, id, format=None): try: item = RemoteControlCode.objects.get(pk=id) serializer = RemoteControlCodeSerializer(item) return Response(serializer.data) except RemoteControlCode.DoesNotExist: return Response(status=404)
def as_view(cls, *args, **kwargs): view = super(GraphQLView, cls).as_view(*args, **kwargs) view = permission_classes((IsAuthenticated,))(view) view = authentication_classes(api_settings.DEFAULT_AUTHENTICATION_CLASSES)(view) view = api_view(['GET', 'POST'])(view) return view