Esempio n. 1
0
 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
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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)
Esempio n. 5
0
 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
Esempio n. 6
0
 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)
Esempio n. 7
0
 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)
Esempio n. 8
0
 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)
Esempio n. 9
0
 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)