def post(self, request, slug):
     try:
         instance = request.user.notifications.get(id=slug2id(slug))
     except Notification.DoesNotExist:
         return ErrorResponse('Nie ma takiego powiadomienia!',
                              status.HTTP_404_NOT_FOUND)
     if instance.unread:
         instance.mark_as_read()
         return MessageResponse('Oznaczono powiadomienie jako przeczytane')
     else:
         instance.mark_as_unread()
         return MessageResponse(
             'Oznaczono powiadomienie jako nieprzeczytane')
Beispiel #2
0
    def post(self, request, cv_id):
        try:
            cv = CV.objects.get(cv_id=cv_id)
            if not IsCVOwner().has_object_permission(request, self, cv):
                return ErrorResponse("Nie masz uprawnień do wykonania tej czynności", status.HTTP_403_FORBIDDEN)

        except CV.DoesNotExist:
            return ErrorResponse('Nie znaleziono CV. Upewnij się, że uwzględniono cv_id w url-u', status.HTTP_404_NOT_FOUND)

        serializer = CVSerializer(instance=cv)
        data = serializer.data
        try:
            pict = request.FILES['picture']
            ext = pict.name.split('.')[-1]
            pict.name = create_unique_filename('cv_pics', ext)
            data['basic_info']['picture'] = pict
            cv.has_picture = True
            cv.save()
        except MultiValueDictKeyError:
            ErrorResponse('Upewnij się, że form key to "picture"', status.HTTP_400_BAD_REQUEST)
        serializer = CVSerializer(data=data)

        delete_previous_cv_file(cv)
        delete_previous_picture(cv.basic_info)

        if serializer.is_valid():
            serializer.update(cv, serializer.validated_data)
            return MessageResponse('Zdjęcie dodano pomyślnie')
        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
Beispiel #3
0
    def patch(self, request, pk):
        try:
            account = Account.objects.get(pk=pk)
        except Account.DoesNotExist:
            return ErrorResponse(
                'Użytkownik o podanym id nie został znaleziony',
                status.HTTP_404_NOT_FOUND)
        if account.type == AccountType.STANDARD.value:
            serializer = DefaultAccountSerializer(account,
                                                  data=request.data,
                                                  partial=True)
        elif account.type == AccountType.EMPLOYER.value:
            serializer = EmployerAccountSerializer(account,
                                                   data=request.data,
                                                   partial=True)
        elif account.type == AccountType.STAFF.value:
            return ErrorResponse("Nie możesz edytować danych tego użytkownika",
                                 status.HTTP_403_FORBIDDEN)

        if serializer.is_valid():
            serializer.update(account, serializer.validated_data)
            send_account_data_change_email(pk, request.data)
            return MessageResponse("Dane konta zostały zaktualizowane")
        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
 def delete(self, request, contact_id):
     try:
         instance = PhoneContact.objects.get(pk=contact_id)
     except ObjectDoesNotExist:
         return ErrorResponse("Nie znaleziono kontaktu o podanym id",
                              status.HTTP_404_NOT_FOUND)
     instance.delete()
     return MessageResponse("Kontakt został pomyślnie usunięty")
 def delete(self, request, tile_id):
     try:
         instance = Tile.objects.get(pk=tile_id)
     except ObjectDoesNotExist:
         return ErrorResponse("Nie znaleziono kafelka o podanym id",
                              status.HTTP_404_NOT_FOUND)
     instance.delete()
     return MessageResponse("Kafelek został pomyślnie usunięty")
 def delete(self, request, slug):
     try:
         instance = request.user.notifications.get(id=slug2id(slug))
     except Notification.DoesNotExist:
         return ErrorResponse('Nie ma takiego powiadomienia!',
                              status.HTTP_404_NOT_FOUND)
     instance.delete()
     return MessageResponse('Pomyślnie usunięto powiadomienie!')
Beispiel #7
0
    def patch(self, request):
        account = request.user
        serializer = StaffAccountSerializer(account, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.update(account, serializer.validated_data)
        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)

        return MessageResponse("Dane zostały pomyślnie zmienione")
Beispiel #8
0
 def delete(self, request, pk):
     try:
         account = Account.objects.get(pk=pk)
         if account.type == AccountType.STAFF.value:
             return ErrorResponse("Nie możesz wykonać tej operacji", status.HTTP_403_FORBIDDEN)
         account.delete()
         return MessageResponse("Konto zostało usunięte")
     except Account.DoesNotExist:
         return ErrorResponse("Użytkownik o podanym id nie został znaleziony", status.HTTP_404_NOT_FOUND)
Beispiel #9
0
 def delete(self, request, category_id):
     try:
         category = BlogPostCategory.objects.get(pk=category_id)
     except BlogPostCategory.DoesNotExist:
         return ErrorResponse("Kategoria o podanym id nie istnieje",
                              status.HTTP_404_NOT_FOUND)
     category.delete_header_if_exists()
     category.delete()
     return MessageResponse("Kategoria została usunięta")
Beispiel #10
0
    def delete(self, request, cv_id):
        try:
            cv = CV.objects.get(cv_id=cv_id)
            if not IsCVOwner().has_object_permission(request, self, cv) \
                    and not IsStaffResponsibleForCVs().has_object_permission(request, self, cv):
                return ErrorResponse("Nie masz uprawnień do wykonania tej czynności", status.HTTP_403_FORBIDDEN)
            cv.delete()
        except CV.DoesNotExist:
            return ErrorResponse("Nie znaleziono CV. Upewnij się, że uwzględniono cv_id w url-u", status.HTTP_404_NOT_FOUND)

        return MessageResponse('CV usunięto pomyślnie')
Beispiel #11
0
 def patch(self, request):
     account = request.user
     serializer = PasswordChangeRequestSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     old_pass = request.data['old_password']
     new_pass = request.data['new_password']
     if check_password(old_pass, account.password):
         account.set_password(new_pass)
         account.save()
         account.auth_token_set.all().delete()
         return MessageResponse("Hasło zostało zmienione")
     return ErrorResponse("Stare hasło jest niepoprawne", status.HTTP_403_FORBIDDEN)
Beispiel #12
0
    def post(self, request, user_id):
        if user_id is not None:
            try:
                user = Account.objects.get(pk=user_id)
            except Account.DoesNotExist:
                return ErrorResponse('Nie znaleziono użytkownika', status.HTTP_404_NOT_FOUND)
            user.status = AccountStatus.VERIFIED.value
            user.save()
            send_verification_email(user_id)
            return MessageResponse('Użytkownik został pomyślnie zweryfikowany')

        return ErrorResponse('Nie podano id użytkownika', status.HTTP_400_BAD_REQUEST)
Beispiel #13
0
 def post(self, request):
     user = DefaultAccount.objects.get(user=request.user)
     try:
         perspective = UserPerspective.objects.get(user=user)
     except UserPerspective.DoesNotExist:
         return ErrorResponse('Nie zacząłeś_aś oglądać kroków usamodzielnienia', status.HTTP_400_BAD_REQUEST)
     if perspective.step.substeps.count() <= perspective.substep_order + 1:
         return ErrorResponse('Przekroczono liczbę podkroków', status.HTTP_400_BAD_REQUEST)
     else:
         perspective.substep_order += 1
         perspective.save()
         return MessageResponse('Gratulacje, przechodzisz dalej!')
Beispiel #14
0
    def delete(self, request, comment_id):
        try:
            comment = BlogPostComment.objects.get(pk=comment_id)
        except ObjectDoesNotExist:
            return ErrorResponse("Nie znaleziono komentarza o podanym id",
                                 status.HTTP_404_NOT_FOUND)

        if IsUserCommentAuthor().has_object_permission(request, self, comment) or \
                IsStaffBlogModerator().has_object_permission(request, self, comment):
            comment.delete()
            return MessageResponse("Komentarz o podanym id został usunięty")
        else:
            return ErrorResponse("Nie masz uprawnień, by usunąć ten komentarz",
                                 status.HTTP_403_FORBIDDEN)
Beispiel #15
0
 def post(self, request, cv_id):
     if cv_id is not None:
         try:
             cv = CV.objects.get(cv_id=cv_id)
         except CV.DoesNotExist:
             return ErrorResponse('Nie znaleziono CV o podanym id', status.HTTP_404_NOT_FOUND)
         cv.is_verified = True
         cv.save()
         notify.send(request.user, recipient=cv.cv_user.user,
                     verb=f'CV {cv.name} zostało zatwierdzone',
                     app='myCVs',
                     object_id=None
                     )
         return MessageResponse('CV zweryfikowano pomyślnie')
     return ErrorResponse('Nie podano cv_id', status.HTTP_400_BAD_REQUEST)
Beispiel #16
0
    def put(self, request, cv_id):
        try:
            cv = CV.objects.get(cv_id=cv_id)
            if not IsCVOwner().has_object_permission(request, self, cv):
                return ErrorResponse("Nie masz uprawnień do wykonania tej czynności", status.HTTP_403_FORBIDDEN)

        except CV.DoesNotExist:
            return ErrorResponse('Nie znaleziono CV o podanym id', status.HTTP_404_NOT_FOUND)

        try:
            cv.name = request.data['name']
            cv.save()
            return MessageResponse(f'Nazwa CV zmieniona na: {request.data["name"]}')
        except KeyError:
            return ErrorResponse('Nie podano nowej nazwy CV', status.HTTP_400_BAD_REQUEST)
Beispiel #17
0
    def post(self, request, user_id):
        if user_id is not None:
            try:
                user = Account.objects.get(pk=user_id)
            except Account.DoesNotExist:
                return ErrorResponse('Użytkownik o podanym ID nie został znaleziony', status.HTTP_404_NOT_FOUND)

            if user.type == AccountType.STAFF.value:
                return ErrorResponse('Nie możesz zablokować tego użytkownika', status.HTTP_403_FORBIDDEN)

            user.status = AccountStatus.BLOCKED.value
            user.save()
            return MessageResponse('Użytkownik został pomyślnie zablokowany')

        return ErrorResponse('ID użytkownika nie zostało podane', status.HTTP_400_BAD_REQUEST)
Beispiel #18
0
    def post(self, request):
        request_data = request.data
        serializer = self.serializer_class(data=request_data)
        try:
            cv = CV.objects.get(cv_id=request_data['cv_id'])
        except CV.DoesNotExist:
            return ErrorResponse('Nie znaleziono CV o podanym id', status.HTTP_404_NOT_FOUND)

        if serializer.is_valid():
            feedback = serializer.create(serializer.validated_data)
            notify.send(request.user, recipient=cv.cv_user.user,
                        verb=f'Nowy komentarz do CV: {cv.name}',
                        app='myCVs',
                        object_id=None
                        )
            return MessageResponse('Feedback stworzono pomyślnie')
        else:
            return Response(serializer.errors, status.HTTP_400_BAD_REQUEST)
Beispiel #19
0
    def delete(self, request, cv_id):
        try:
            cv = CV.objects.get(cv_id=cv_id)
            if not IsCVOwner().has_object_permission(request, self, cv):
                return ErrorResponse("Nie masz uprawnień do wykonania tej czynności", status.HTTP_403_FORBIDDEN)
        except CV.DoesNotExist:
            return ErrorResponse('Nie znaleziono CV', status.HTTP_404_NOT_FOUND)
        bi = BasicInfo.objects.get(cv=cv)
        if not bi.picture:
            return ErrorResponse('Nie znaleziono zdjęcia', status.HTTP_404_NOT_FOUND)
        bi.picture.delete(save=True)
        cv.has_picture = False
        cv.save()
        cv_serializer = CVSerializer(instance=cv)

        delete_previous_picture(bi)
        delete_previous_cv_file(cv)
        cv_serializer.update(cv, cv_serializer.data)

        return MessageResponse('Zdjęcie usunięto pomyślnie')
 def delete(self, request):
     request.user.notifications.all().delete()
     return MessageResponse('Usunięto wszystkie twoje powiadomienia!')
Beispiel #21
0
 def delete(self, request):
     account = request.user
     account.delete()
     return MessageResponse("Konto zostało pomyślnie usunięte")
 def post(self, request):
     pk = request.user.id
     #start_scheduler(pk)
     return MessageResponse(
         'Powiadomienia będą wysyłane na adres mailowy codziennie o 06:00')
 def post(self, request):
     pk = request.user.id
     #stop_scheduler(pk)
     return MessageResponse(
         'Powiadomienia nie będą już wysyłane na adres mailowy')
 def get(self, request):
     return MessageResponse('Nawiązano kontakt z WebSocketem')
 def post(self, request):
     request.user.notifications.mark_all_as_read()
     return MessageResponse(
         'Oznaczono wszystkie powiadomienia jako przeczytane')