Example #1
0
    def delete(self, request, *args, **kwargs):
        permissions = PermissionsService.get_ticket_permissions(
            ticket_id=kwargs['id'], user_id=request.user.id)
        if not permissions.can_delete:
            raise PermissionDeniedException

        TicketService.delete_ticket(ticket_id=kwargs['id'])
        return Response(status=204)
Example #2
0
    def post(self, request, *args, **kwargs):
        serializer = CreateTicketSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        TicketService.create_ticket_from_github_issue(
            **serializer.validated_data)

        return Response(status=201)
Example #3
0
    def test_create_ticket(self):
        category = CategoryFactory()
        ticket = TicketService.create_ticket(category.id)

        self.assertEqual(ticket.category.id, category.id)
        self.assertIsNone(ticket.title)
        self.assertIsNone(ticket.body)
        self.assertIsNone(ticket.due_date)
Example #4
0
    def test_update_ticket(self):
        ticket = TicketFactory()
        data = {
            'title': 'Hey, I`m a Ticket',
            'body': 'Hey, I`m a Ticket`s body',
            'due_date': datetime(2020, 12, 12),
        }

        updated_ticket = TicketService.update_ticket(ticket.id, data)
        self.assertEqual(updated_ticket.id, ticket.id)
        self.assertEqual(updated_ticket.category_id, ticket.category_id)
        self.assertEqual(updated_ticket.title, data['title'])
        self.assertEqual(updated_ticket.body, data['body'])
        self.assertEqual(updated_ticket.due_date, data['due_date'])
Example #5
0
    def patch(self, request, *args, **kwargs):
        serializer = UpdateTicketSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        permissions = PermissionsService.get_ticket_permissions(
            ticket_id=kwargs['id'], user_id=request.user.id)
        if not permissions.can_mutate:
            raise PermissionDeniedException

        ticket = TicketService.update_ticket(
            ticket_id=kwargs['id'], validated_data=serializer.validated_data)
        response_serializer = UpdateTicketResponseSerializer(instance=ticket)
        return Response(
            status=200,
            data=response_serializer.data,
        )
Example #6
0
    def post(self, request, *args, **kwargs):
        serializer = CreateTicketSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        permissions = PermissionsService.get_category_permissions(
            category_id=serializer.validated_data['category_id'],
            user_id=request.user.id,
        )
        if not permissions.can_mutate:
            raise PermissionDeniedException

        ticket = TicketService.create_ticket(**serializer.validated_data)
        response_serializer = CreateTicketResponseSerializer(instance=ticket)
        return Response(
            status=201,
            data=response_serializer.data,
        )
Example #7
0
    def __init__(self, get_response):
        """

        :param get_response:
        """

        self.get_response = get_response

        self.initOk = False

        storagePath = os.path.abspath(
            os.path.dirname(__file__) + "/../media/") + "/"

        self.__dbConn = MongoConnection()
        self.__userService = UserService(self.__dbConn)
        self.__ticketService = TicketService(self.__dbConn,
                                             "http://localhost:9000/images/",
                                             storagePath)

        self.initOk = True
Example #8
0
 def test_update_ticket_ticket_not_found(self):
     with self.assertRaises(TicketNotFoundException):
         _ = TicketService.update_ticket(-1, {})
Example #9
0
 def test_create_ticket_category_not_found(self):
     with self.assertRaises(CategoryNotFoundException):
         _ = TicketService.create_ticket(-1)