Instead of continuously unwrapping this property from the payload in calling code, immediately use it when receving the result from the API call.tags/7.8
@@ -173,5 +173,7 @@ export function getQualityGateProjectStatus( | |||
projectId?: string; | |||
} & T.BranchParameters | |||
): Promise<T.QualityGateProjectStatus> { | |||
return getJSON('/api/qualitygates/project_status', data).catch(throwGlobalError); | |||
return getJSON('/api/qualitygates/project_status', data) | |||
.then(r => r.projectStatus) | |||
.catch(throwGlobalError); | |||
} |
@@ -655,11 +655,9 @@ declare namespace T { | |||
} | |||
export interface QualityGateProjectStatus { | |||
projectStatus: { | |||
conditions?: QualityGateProjectStatusCondition[]; | |||
ignoredConditions: boolean; | |||
status: Status; | |||
}; | |||
conditions?: QualityGateProjectStatusCondition[]; | |||
ignoredConditions: boolean; | |||
status: Status; | |||
} | |||
export interface QualityGateStatusCondition { |
@@ -92,11 +92,11 @@ export class ReviewApp extends React.Component<Props, State> { | |||
}), | |||
getQualityGateProjectStatus(data) | |||
]).then( | |||
([measures, qualityGateStatus]) => { | |||
if (this.mounted && measures && qualityGateStatus) { | |||
const { status } = qualityGateStatus.projectStatus; | |||
([measures, projectStatus]) => { | |||
if (this.mounted && measures && projectStatus) { | |||
const { status } = projectStatus; | |||
this.setState({ | |||
conditions: extractStatusConditionsFromProjectStatus(qualityGateStatus), | |||
conditions: extractStatusConditionsFromProjectStatus(projectStatus), | |||
loading: false, | |||
measures, | |||
status |
@@ -18,9 +18,9 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
export function extractStatusConditionsFromProjectStatus( | |||
status: T.QualityGateProjectStatus | |||
projectStatus: T.QualityGateProjectStatus | |||
): T.QualityGateStatusCondition[] { | |||
const { conditions } = status.projectStatus; | |||
const { conditions } = projectStatus; | |||
return conditions | |||
? conditions.map(c => ({ | |||
actual: c.actualValue, |
@@ -294,24 +294,22 @@ export function mockQualityProfile(overrides: Partial<Profile> = {}): Profile { | |||
} | |||
export function mockQualityGateProjectStatus( | |||
overrides: Partial<T.QualityGateProjectStatus['projectStatus']> = {} | |||
overrides: Partial<T.QualityGateProjectStatus> = {} | |||
): T.QualityGateProjectStatus { | |||
return { | |||
projectStatus: { | |||
conditions: [ | |||
{ | |||
actualValue: '0', | |||
comparator: 'GT', | |||
errorThreshold: '1.0', | |||
metricKey: 'new_bugs', | |||
periodIndex: 1, | |||
status: 'OK' | |||
} | |||
], | |||
ignoredConditions: false, | |||
status: 'OK', | |||
...overrides | |||
} | |||
conditions: [ | |||
{ | |||
actualValue: '0', | |||
comparator: 'GT', | |||
errorThreshold: '1.0', | |||
metricKey: 'new_bugs', | |||
periodIndex: 1, | |||
status: 'OK' | |||
} | |||
], | |||
ignoredConditions: false, | |||
status: 'OK', | |||
...overrides | |||
}; | |||
} | |||