Get open, high-severity defects associated with any application module

This flow demonstrates how to get a list of defects that are associated with an application module (product area), that are open, and have high severity.

Areas: Defects, Application modules (product areas) 

Entity relationship diagram

We need to access the following entities for this flow, and understand the relationships between these entities.

Entity Relationships in this flow Description of relationship Reference / relationship fields
Defect Product Area A defect can be associated with 0 or more application modules (product areas). product_areas
Phase A defect is always associated with one phase, such as Opened phase
List Node A defect can have a severity status. The severity status is stored as a list node. priority

Back to top

Flow

Let's create the REST API calls step-by-step.

  1. We can start by listing all the defects in the workspace.

    GET .../api/shared_spaces/<shared_space_id>/workspaces/1002/defects

  2. Let's build our query_clause.

    This query has three sets of criteria: The phase, the severity, and the application modules (product areas). We will separate each set with a semi-colon (;), which represents the And operator.

    In this step, we are only interested in defects that are assigned to any application module (product area). If a defect is not assigned to an application module, we do not want it listed. We use the asterisk (*) wildcard—and only the *—to indicate that we only want to list those defects that have any application module assigned to it.

    GET .../api/shared_spaces/<shared_space_id>/workspaces/1002/defects?query="product_areas EQ {name EQ ^*^}"

  3. We also want to query for opened defects. phase is a reference field. We compare the phase's logical_name field to the phase.defect list for a match.

    GET .../api/shared_spaces/<shared_space_id>/workspaces/1002/defects?query="product_areas EQ {name EQ ^*^};phase EQ {logical_name EQ ^phase.defect.opened^}"

  4. Now we query for high severity priorities. priority is a reference field that refers to list_nodes. We compare the priority's logical_name field to the list_node.severity list for a match.

    GET .../api/shared_spaces/<shared_space_id>/workspaces/1002/defects?query="product_areas EQ {name EQ ^*^};phase EQ {logical_name EQ ^phase.defect.opened^};priority EQ {logical_name EQ ^list_node.severity.high^}"

The complete REST API call for this flow is: 

GET .../api/shared_spaces/<shared_space_id>/workspaces/1002/defects?query="product_areas EQ {name EQ ^*^};phase EQ {logical_name EQ ^phase.defect.opened^};priority EQ {logical_name EQ ^list_node.severity.high^}"

Back to top

See also: