def get_queryset(self): request = self.request eth_address = get_auth_eth_address(request.META) notifications = Notification.objects\ .filter(recipient__username__iexact=eth_address.lower())\ .order_by('-timestamp') return notifications
def mark_featured_by_id(self, request, pk=None): eth_address = get_auth_eth_address(request.META) course = get_object_or_404(Course, id=pk) if course.provider.user.username == eth_address: course.is_featured = True course.save() return Response({'status': 'ok'}) return Response({'status': 'denied'}, status=status.HTTP_401_UNAUTHORIZED)
def mark_featured_by_id(self, request, pk=None): eth_address = get_auth_eth_address(request.META) job_position = get_object_or_404(Job, id=pk) if job_position.company.user.username == eth_address: job_position.is_featured = True job_position.save() return Response({'status': 'ok'}) return Response({ 'status': 'denied'}, status=status.HTTP_401_UNAUTHORIZED)
def delete_by_id(self, request, pk=None): eth_address = get_auth_eth_address(request.META) course = get_object_or_404(Course, id=pk) if course.provider.user.username == eth_address: course.delete() return Response({'status': 'ok'}) else: return Response({'status': 'denied'}, status=status.HTTP_401_UNAUTHORIZED)
def toggle_unread(self, request, pk=None): eth_address = get_auth_eth_address(request.META) notification = get_object_or_404( Notification, pk=pk, recipient__username__iexact=eth_address) old_unread = notification.unread notification.unread = not notification.unread notification.save() response = Response({ 'old_unread': old_unread, 'new_unread': notification.unread, }) return response
def create(self, request): eth_address = get_auth_eth_address(request.META) academy_address = str(request.data.get('academy_address')).lower() industries = Industry.objects.filter( name__in=request.data.get('industries', [])) data = request.data.copy() expiration_date = self._normalized_date(data.get('expiration_date')) data['expiration_date'] = expiration_date holder_eth_address = request.data.get('holder_eth_address').lower() try: holder = User.objects.get(username=holder_eth_address) except User.DoesNotExist: return Response({ 'error': 'User not found', }, status=status.HTTP_400_BAD_REQUEST) skills = self._normalized_skills(request.data.get('skills', [])) data['holder'] = holder.id data['academy_address'] = academy_address data['user_eth_address'] = eth_address serializer = CertificateSerializer(data=data) if serializer.is_valid(): certificate = serializer.save( skills=skills, industries=industries) issuer_type = request.user.profile.active_profile_type if (issuer_type != 1 and holder.username != request.user.username): verification = Verification( certificate=certificate, granted_to=holder, verifier=request.user, verifier_type=issuer_type, granted_to_type=int(data['granted_to_type'])) verification.save() if holder.usersettings.subscribed: certificate_upload_email.delay( certificate.certificate_title, request.user.profile.name_by_profile_type( issuer_type), holder.email ) elif holder.usersettings.subscribed: certificate_upload_email.delay( certificate.certificate_title, holder.profile.name_by_profile_type( issuer_type), holder.email ) return Response({ 'status': 'ok', 'certificate_pk': certificate.pk, }) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def edit_by_id(self, request, pk=None): eth_address = get_auth_eth_address(request.META) job_position = get_object_or_404(Job, id=pk) if job_position.company.user.username == eth_address: serializer = JobCreateSerializer( data=request.data, instance=job_position, partial=True) if serializer.is_valid(): serializer.save() return Response({'status': 'ok'}) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response({ 'status': 'denied'}, status=status.HTTP_401_UNAUTHORIZED)
def edit_by_id(self, request, pk=None): eth_address = get_auth_eth_address(request.META) course = get_object_or_404(Course, id=pk) if course.provider.user.username == eth_address: serializer = CourseCreateSerializer(data=request.data, instance=course, partial=True) if serializer.is_valid(): serializer.save() return Response({'status': 'ok'}) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response({'status': 'denied'}, status=status.HTTP_401_UNAUTHORIZED)
def retrieve(self, request, pk=None): eth_address = get_auth_eth_address(request.META) notification = Notification.objects.get( id=pk, recipient__username__iexact=eth_address.lower()) serializer = NotificationSerializer(notification) return Response(serializer.data)