Parcourir la source

Unwrap the projectStatus property from the /api/qualitygates/project_status WS

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
Wouter Admiraal il y a 5 ans
Parent
révision
496a64705b

+ 3
- 1
server/sonar-web/src/main/js/api/quality-gates.ts Voir le fichier

@@ -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);
}

+ 3
- 5
server/sonar-web/src/main/js/app/types.d.ts Voir le fichier

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

+ 4
- 4
server/sonar-web/src/main/js/apps/overview/pullRequests/ReviewApp.tsx Voir le fichier

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

+ 2
- 2
server/sonar-web/src/main/js/helpers/qualityGates.ts Voir le fichier

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

+ 14
- 16
server/sonar-web/src/main/js/helpers/testMocks.ts Voir le fichier

@@ -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
};
}


Chargement…
Annuler
Enregistrer