コード例 #1
0
    def generate_ticket(id):
        """
        generate a ticket object form a API results
        by calling Object factory.

        Args:
            id: Integer, ID of the selected ticket.

        Returns:
            ticket: Ticket object, which contains ticket data
            if error:
                returns a default ticket with Error message assigned.
        """

        # get query generated by zendesk_api.py methods
        url = ApiQuery().get_selected_ticket(id)
        query = ApiQuery().get_full_query(url)
        response = ApiCall().get_result(query)

        if response.is_success:
            result_data = response.result
            ticket_data = result_data['ticket']
            factory = ObjectFactory()
            ticket = factory.create_ticket_object(ticket_data)
        else:
            ticket = Ticket()
            ticket.error_message = response.error_message

        return ticket
コード例 #2
0
    def generate_ticket_list():
        """
        generate a ticket list form a API results
        by calling Object factory.

        Returns:
            tickets: list of Ticket objects, which contains ticket data
            if error:
                returns a default ticket with Error message assigned.
        """

        # get query generated by zendesk_api.py methods
        url = ApiQuery().get_all()
        query = ApiQuery().get_full_query(url)
        response = ApiCall().get_result(query)
        tickets = []

        # loop while result do not have more pages
        # happens when json result have more than 100 tickets
        while True:
            if response.is_success:

                result_data = response.result
                ticket_data = result_data['tickets']

                for current_ticket in ticket_data:
                    factory = ObjectFactory()
                    ticket = factory.create_ticket_object(current_ticket)
                    tickets.append(ticket)
                if result_data['next_page']:
                    query = result_data['next_page']
                    response = ApiCall().get_result(query)

                else:
                    break

            else:
                tickets.clear()
                ticket = Ticket()
                ticket.error_message = response.error_message
                tickets.append(ticket)
                break

        return tickets