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
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