aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>2018-05-23 13:57:07 +0200
committerSonarTech <sonartech@sonarsource.com>2018-05-24 20:20:47 +0200
commitb68330a93e71d9a2c3c6697213d78cdbcb99e739 (patch)
treee180e822c696aa3251f03a5a1a49319c9bb53287
parenta5484f56ceb467e5c0a2e3f705969c1822ea8109 (diff)
downloadsonarqube-b68330a93e71d9a2c3c6697213d78cdbcb99e739.tar.gz
sonarqube-b68330a93e71d9a2c3c6697213d78cdbcb99e739.zip
fix Condition typing
-rw-r--r--server/sonar-web/src/main/js/api/quality-gates.ts4
-rw-r--r--server/sonar-web/src/main/js/app/types.ts2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/Condition.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx4
4 files changed, 9 insertions, 11 deletions
diff --git a/server/sonar-web/src/main/js/api/quality-gates.ts b/server/sonar-web/src/main/js/api/quality-gates.ts
index 490b48c22b1..d2f212bd457 100644
--- a/server/sonar-web/src/main/js/api/quality-gates.ts
+++ b/server/sonar-web/src/main/js/api/quality-gates.ts
@@ -19,7 +19,7 @@
*/
import { getJSON, post, postJSON } from '../helpers/request';
import throwGlobalError from '../app/utils/throwGlobalError';
-import { Condition, Metric, QualityGate } from '../app/types';
+import { Condition, Metric, QualityGate, Omit } from '../app/types';
export function fetchQualityGates(data: {
organization?: string;
@@ -78,7 +78,7 @@ export function createCondition(
data: {
gateId: number;
organization?: string;
- } & Condition
+ } & Omit<Condition, 'id'>
): Promise<Condition> {
return postJSON('/api/qualitygates/create_condition', data);
}
diff --git a/server/sonar-web/src/main/js/app/types.ts b/server/sonar-web/src/main/js/app/types.ts
index 1967bb2497e..11e29502c06 100644
--- a/server/sonar-web/src/main/js/app/types.ts
+++ b/server/sonar-web/src/main/js/app/types.ts
@@ -84,7 +84,7 @@ interface ComponentConfiguration {
export interface Condition {
error: string;
- id?: number;
+ id: number;
metric: string;
op?: string;
period?: number;
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.tsx
index 587ce6af15f..284a0e876d5 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.tsx
@@ -81,12 +81,10 @@ export default class Condition extends React.PureComponent<Props, State> {
};
removeCondition = (condition: ICondition) => {
- if (condition.id !== undefined) {
- deleteCondition({ id: condition.id, organization: this.props.organization }).then(
- () => this.props.onRemoveCondition(condition),
- () => {}
- );
- }
+ deleteCondition({ id: condition.id, organization: this.props.organization }).then(
+ () => this.props.onRemoveCondition(condition),
+ () => {}
+ );
};
render() {
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
index 7071337a79b..536fe76f0d1 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
@@ -23,7 +23,7 @@ import ConditionOperator from './ConditionOperator';
import ThresholdInput from './ThresholdInput';
import Period from './Period';
import { translate, getLocalizedMetricName } from '../../../helpers/l10n';
-import { Metric, QualityGate, Condition } from '../../../app/types';
+import { Metric, QualityGate, Condition, Omit } from '../../../app/types';
import { createCondition, updateCondition } from '../../../api/quality-gates';
import { isDiffMetric } from '../../../helpers/measures';
import { parseError } from '../../../helpers/request';
@@ -87,7 +87,7 @@ export default class ConditionModal extends React.PureComponent<Props, State> {
};
getUpdatedCondition = (metric: Metric) => {
- const data: Condition = {
+ const data: Omit<Condition, 'id'> = {
metric: metric.key,
op: metric.type === 'RATING' ? 'GT' : this.state.op,
warning: this.state.warning,