]> source.dussan.org Git - sonarqube.git/commitdiff
Automatically remove nil values from api calls.
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Wed, 19 Jul 2017 14:01:25 +0000 (16:01 +0200)
committerGrégoire Aubert <gregoire.aubert@sonarsource.com>
Tue, 25 Jul 2017 07:20:30 +0000 (09:20 +0200)
server/sonar-web/src/main/js/helpers/request.js

index 8c80e71df442e19661b05924d63176e28c8d8a53..941532e4b57d3bd359628469b59a643884667e1c 100644 (file)
@@ -19,6 +19,7 @@
  */
 // @flow
 import { stringify } from 'querystring';
+import { omitBy, isNil } from 'lodash';
 import { getCookie } from './cookies';
 
 type Response = {
@@ -50,6 +51,10 @@ export function getCSRFToken(): Object {
   return value ? { [getCSRFTokenName()]: value } : {};
 }
 
+export function omitNil(obj: Object): Object {
+  return omitBy(obj, isNil);
+}
+
 /**
  * Default options for any request
  */
@@ -96,12 +101,14 @@ class Request {
     if (this.data) {
       if (this.data instanceof FormData) {
         options.body = this.data;
-      } else if (options.method === 'GET') {
-        url += '?' + stringify(this.data);
       } else {
-        customHeaders['Content-Type'] = 'application/x-www-form-urlencoded';
-        // $FlowFixMe complains that `data` is nullable
-        options.body = stringify(this.data);
+        const strData = stringify(omitNil(this.data));
+        if (options.method === 'GET') {
+          url += '?' + strData;
+        } else {
+          customHeaders['Content-Type'] = 'application/x-www-form-urlencoded';
+          options.body = strData;
+        }
       }
     }