|
568 | 568 |
|
569 | 569 | r = j1.create_update_parameter(name="ParameterName", value="stored_value", secret=False) |
570 | 570 | print(json.dumps(r, indent=1)) |
| 571 | + |
| 572 | +# list_questions |
| 573 | +list_questions_r = j1.list_questions() |
| 574 | +print("list_questions()") |
| 575 | +print(f"Total questions found: {len(list_questions_r)}") |
| 576 | +print(json.dumps(list_questions_r[:2], indent=1)) # Show first 2 questions |
| 577 | + |
| 578 | +# list_questions with filtering (if supported) |
| 579 | +# Note: The current implementation doesn't support filtering parameters, |
| 580 | +# but the GraphQL schema shows support for searchQuery, tags, etc. |
| 581 | +print("\nlist_questions() - Sample question details:") |
| 582 | +if list_questions_r: |
| 583 | + sample_question = list_questions_r[0] |
| 584 | + print(f" Title: {sample_question.get('title', 'No title')}") |
| 585 | + print(f" ID: {sample_question.get('id', 'No ID')}") |
| 586 | + print(f" Description: {sample_question.get('description', 'No description')}") |
| 587 | + print(f" Tags: {sample_question.get('tags', [])}") |
| 588 | + print(f" Number of queries: {len(sample_question.get('queries', []))}") |
| 589 | + if sample_question.get('queries'): |
| 590 | + for i, query in enumerate(sample_question['queries']): |
| 591 | + print(f" Query {i+1}: {query.get('name', 'Unnamed')} - {query.get('query', 'No query')[:50]}...") |
| 592 | +else: |
| 593 | + print(" No questions found in the account") |
| 594 | + |
| 595 | +# list_questions - analyze question types and compliance |
| 596 | +print("\nlist_questions() - Analysis:") |
| 597 | +if list_questions_r: |
| 598 | + # Count questions by compliance standard |
| 599 | + compliance_standards = {} |
| 600 | + question_types = {} |
| 601 | + |
| 602 | + for question in list_questions_r: |
| 603 | + # Analyze compliance standards |
| 604 | + if 'compliance' in question and question['compliance']: |
| 605 | + compliance = question['compliance'] |
| 606 | + if isinstance(compliance, dict) and 'standard' in compliance: |
| 607 | + standard = compliance['standard'] |
| 608 | + compliance_standards[standard] = compliance_standards.get(standard, 0) + 1 |
| 609 | + |
| 610 | + # Analyze question types by tags |
| 611 | + if 'tags' in question and question['tags']: |
| 612 | + for tag in question['tags']: |
| 613 | + question_types[tag] = question_types.get(tag, 0) + 1 |
| 614 | + |
| 615 | + print(f" Total questions: {len(list_questions_r)}") |
| 616 | + print(f" Compliance standards found: {len(compliance_standards)}") |
| 617 | + if compliance_standards: |
| 618 | + print(" Standards:") |
| 619 | + for standard, count in compliance_standards.items(): |
| 620 | + print(f" {standard}: {count} questions") |
| 621 | + |
| 622 | + print(f" Question categories (by tags): {len(question_types)}") |
| 623 | + if question_types: |
| 624 | + print(" Top categories:") |
| 625 | + sorted_tags = sorted(question_types.items(), key=lambda x: x[1], reverse=True)[:5] |
| 626 | + for tag, count in sorted_tags: |
| 627 | + print(f" {tag}: {count} questions") |
| 628 | + |
| 629 | +# list_questions - find specific types of questions |
| 630 | +print("\nlist_questions() - Finding specific questions:") |
| 631 | +if list_questions_r: |
| 632 | + # Find security-related questions |
| 633 | + security_questions = [q for q in list_questions_r if 'tags' in q and q['tags'] and any('security' in tag.lower() for tag in q['tags'])] |
| 634 | + print(f" Security-related questions: {len(security_questions)}") |
| 635 | + |
| 636 | + # Find compliance-related questions |
| 637 | + compliance_questions = [q for q in list_questions_r if 'compliance' in q and q['compliance']] |
| 638 | + print(f" Compliance-related questions: {len(compliance_questions)}") |
| 639 | + |
| 640 | + # Find questions with variables |
| 641 | + variable_questions = [q for q in list_questions_r if 'variables' in q and q['variables']] |
| 642 | + print(f" Questions with variables: {len(variable_questions)}") |
| 643 | + |
| 644 | + # Find questions with polling enabled |
| 645 | + polling_questions = [q for q in list_questions_r if 'pollingInterval' in q and q['pollingInterval'] and q['pollingInterval'] != 'DISABLED'] |
| 646 | + print(f" Questions with polling enabled: {len(polling_questions)}") |
| 647 | + |
| 648 | +print() |
0 commit comments