]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-22049 Align getJSON
authorViktor Vorona <viktor.vorona@sonarsource.com>
Thu, 25 Apr 2024 08:27:05 +0000 (10:27 +0200)
committerMatteo Mara <matteo.mara@sonarsource.com>
Tue, 30 Apr 2024 08:59:04 +0000 (10:59 +0200)
44 files changed:
server/sonar-web/src/main/js/api/alm-integrations.ts
server/sonar-web/src/main/js/api/alm-settings.ts
server/sonar-web/src/main/js/api/application.ts
server/sonar-web/src/main/js/api/branches.ts
server/sonar-web/src/main/js/api/ce.ts
server/sonar-web/src/main/js/api/component-report.ts
server/sonar-web/src/main/js/api/components.ts
server/sonar-web/src/main/js/api/editions.ts
server/sonar-web/src/main/js/api/favorites.ts
server/sonar-web/src/main/js/api/features.ts
server/sonar-web/src/main/js/api/github-provisioning.ts
server/sonar-web/src/main/js/api/issues.ts
server/sonar-web/src/main/js/api/l10n.ts
server/sonar-web/src/main/js/api/languages.ts
server/sonar-web/src/main/js/api/measures.ts
server/sonar-web/src/main/js/api/messages.ts
server/sonar-web/src/main/js/api/metrics.ts
server/sonar-web/src/main/js/api/navigation.ts
server/sonar-web/src/main/js/api/newCodeDefinition.ts
server/sonar-web/src/main/js/api/notifications.ts
server/sonar-web/src/main/js/api/permissions.ts
server/sonar-web/src/main/js/api/plugins.ts
server/sonar-web/src/main/js/api/project-badges.ts
server/sonar-web/src/main/js/api/project-dump.ts
server/sonar-web/src/main/js/api/project-management.ts
server/sonar-web/src/main/js/api/projectActivity.ts
server/sonar-web/src/main/js/api/projectLinks.ts
server/sonar-web/src/main/js/api/quality-gates.ts
server/sonar-web/src/main/js/api/quality-profiles.ts
server/sonar-web/src/main/js/api/rules.ts
server/sonar-web/src/main/js/api/scim-provisioning.ts
server/sonar-web/src/main/js/api/security-hotspots.ts
server/sonar-web/src/main/js/api/settings.ts
server/sonar-web/src/main/js/api/system.ts
server/sonar-web/src/main/js/api/time-machine.ts
server/sonar-web/src/main/js/api/user-tokens.ts
server/sonar-web/src/main/js/api/users.ts
server/sonar-web/src/main/js/api/web-api.ts
server/sonar-web/src/main/js/api/webhooks.ts
server/sonar-web/src/main/js/app/components/extensions/exposeLibraries.ts
server/sonar-web/src/main/js/helpers/__tests__/request-test.ts
server/sonar-web/src/main/js/helpers/request.ts
server/sonar-web/src/main/js/sonar-aligned/helpers/__tests__/request-test.ts [new file with mode: 0644]
server/sonar-web/src/main/js/sonar-aligned/helpers/request.ts [new file with mode: 0644]

index ce7986c0c9c377643310b3272dab14dfd3892d40..d949954dbb79367cf94e76a599cb1b91fcdeef9b 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { get, getJSON, parseError, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { get, parseError, post, postJSON } from '../helpers/request';
 import {
   AzureProject,
   AzureRepository,
index cd7a986bdb601a66898e9c006285df4c7a056499..08f5b1b17a5893a4c76bf6da92a6a24cbd923179 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { get, getJSON, HttpStatus, parseError, parseJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { get, HttpStatus, parseError, parseJSON, post } from '../helpers/request';
 import {
   AlmSettingsBindingDefinitions,
   AlmSettingsInstance,
index 6c51411b58e7c714e33da67aa39eabac20045b17..679961cfda19fa5b08e67ce362a58e23c18283f3 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { Application, ApplicationPeriod } from '../types/application';
 import { Visibility } from '../types/component';
 
index e0a9fb6f8edca38d14064a6dd81815fec7499219..213091b3eb501e8553d4834db5f3642c678f2517 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { Branch, PullRequest } from '../types/branch-like';
 
 export function getBranches(project: string): Promise<Branch[]> {
index 62b36056571d8e64b73e79576784ad5e1d56135e..7acd1af27c44805264d1d24db9511ff7299cf4b8 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { IndexationStatus } from '../types/indexation';
 import { ActivityRequestParameters, Task, TaskWarning } from '../types/tasks';
 import { Paging } from '../types/types';
index 20fd7bf04325e94872ed5bebd1c9135030bf5409..0f3cd52dc1af39a973aca519926fe5c40d9e72bb 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { getBaseUrl } from '../helpers/system';
 import { ComponentReportStatus } from '../types/component-report';
 
index 29b5a4c4e1ba4455711496d1ffc82ee248666f36..375e6a8ea192103f69564198afba960ab0147df7 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, RequestData } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, RequestData } from '../helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   ComponentQualifier,
index 83a16612b68689fe918d4793a12c66d38ee9d343..5b8ba747a45601b4456408dfc62f6e4fc433e86c 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { License } from '../types/editions';
 
 export function isValidLicense(): Promise<{ isValidLicense: boolean }> {
index 2f8be5fcb45b1eeb2946790e4fb00a9f140f4e86..5b59a269231910917a08bb98f16a1f2e4f88bbfd 100644 (file)
@@ -17,7 +17,8 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 
 export function getFavorites(): Promise<any> {
   return getJSON('/api/favorites/search');
index 1e4857006e086558c35f537e2bca4cd7b76cb30c..a5856b65c299cbee866f998caa807a1d8082b519 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { Feature } from '../types/features';
 
 export function getAvailableFeatures(): Promise<Feature[]> {
index 713f9b123a844bfc849db6a303a797ded2390b3d..8ba2bba496188720914744256da4be181009f849 100644 (file)
@@ -19,7 +19,8 @@
  */
 import axios from 'axios';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { GitHubConfigurationStatus, GitHubMapping, GithubStatus } from '../types/provisioning';
 
 const GITHUB_PERMISSION_MAPPINGS = '/api/v2/dop-translation/github-permission-mappings';
index 6f490cc80e7776c8949e5c117a6aa6bf4373a774..6b87eaea6e42b73c0885fd1fb1b817c55eb64391 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import getCoverageStatus from '../components/SourceViewer/helpers/getCoverageStatus';
-import {
-  get,
-  getJSON,
-  HttpStatus,
-  parseJSON,
-  post,
-  postJSON,
-  RequestData,
-} from '../helpers/request';
+import { get, HttpStatus, parseJSON, post, postJSON, RequestData } from '../helpers/request';
 import { FacetName, IssueResponse, ListIssuesResponse, RawIssuesResponse } from '../types/issues';
 import { Dict, FacetValue, IssueChangelog, SnippetsByComponent, SourceLine } from '../types/types';
 
index c1ac5eaa760b86c0b4778129b6362d4f4cd7cc9a..604d7bccd914e00226aaa49514e3a4ef1986390c 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { L10nBundleRequestParams, L10nBundleRequestResponse } from '../types/l10nBundle';
 
 export function fetchL10nBundle(
index f76605f2ea8ef9c7fa6e93af91e0b290a80eba4e..6c23e1e73e9b0a2eee572f892cde6fb80adddc77 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { Language } from '../types/languages';
 
 export function getLanguages(): Promise<Language[]> {
index b30bce138bbea4521f305aa0b9fd6748e662eaa9..093b0df065dbf88bfcb078029ff4b10f135638f6 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   MeasuresAndMetaWithMetrics,
index 3184cdb4c757b339b022413d33be0520a9d8ced5..a5081180e20f5f8c38b3dc21bcdef8fdd87fb90c 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 
 export enum MessageTypes {
   GlobalNcd90 = 'GLOBAL_NCD_90',
index 894ef7a4a65cdebf1fc14df5549f8c0925af6c56..f6b35e448589b5eddbf968fef5b9ae1f36ee2a97 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { Metric } from '../types/types';
 
 export interface MetricsResponse {
index 05099d42fcef448cbcda1313e9e45aa3ca182c16..da908049ae6551004513fb7683ba77408a89e34f 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { AppState } from '../types/appstate';
 import { BranchParameters } from '../types/branch-like';
 import { Extension, NavigationComponent } from '../types/types';
@@ -41,5 +41,5 @@ export function getSettingsNavigation(): Promise<{
 }
 
 export function getGlobalNavigation(): Promise<AppState> {
-  return getJSON('/api/navigation/global', undefined, true);
+  return getJSON('/api/navigation/global', undefined, { bypassRedirect: true });
 }
index 57a553eb71f7dc3d79ef5ec1bc396d4cf6a157a3..63936d5bd15a1197b9c41281cebfdf9823d42f98 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import {
   NewCodeDefinition,
   NewCodeDefinitionBranch,
index aab9b5df561bceb23bc0216f215b4151c646f46b..f146613a72bfe6e53bd659e08fbe25ebf0be603c 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { AddRemoveNotificationParameters, NotificationsResponse } from '../types/notifications';
 
 export function getNotifications(): Promise<NotificationsResponse> {
index 06c554e293f27a57500684fcbe06535ad5d5b646..e13899e8a1fcbdf8fd33b1b99f0688d3f4edd097 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON, RequestData } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON, RequestData } from '../helpers/request';
 import { Visibility } from '../types/component';
 import {
   Paging,
index db78fea70d7d6ad6cbe985bfc6541d6ddfaa5d09..9850b5d87756ddd3a33908f4ec3a9b7f0beb74f3 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import {
   AvailablePlugin,
   InstalledPlugin,
index d73ff348980de81d76f580a6679dbac0eb4b4b94..84b1ea6132b26608909467e0fd699f55a063632a 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 
 export function getProjectBadgesToken(project: string) {
   return getJSON('/api/project_badges/token', { project })
index e7ce3574b60043ae2876d2346a9d9e4f71539160..f76a9d5c50353669b0c5c36fc41133f8743fb7f0 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { DumpStatus } from '../types/project-dump';
 
 export function getStatus(componentKey: string): Promise<DumpStatus> {
index 9d10c8834f0467fe63b87b95cc36569eca3895b1..7ac68b3f75638c7aa0f3e1d32269f76eb63a0d68 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { ComponentQualifier, Visibility } from '../types/component';
 import { Paging } from '../types/types';
 
index 52edbc66f0fbf7ae2afd7e1fd58c972deb1c86ac..f6aa6224ad2a948a420e55e0277b1ff7dea99ae9 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   Analysis,
index fe8880f72d2131d319935fa2aa28b31835a0b2be..223d326811c2436d5c9e824b67b4657d18b66ba6 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { ProjectLink } from '../types/types';
 
 export function getProjectLinks(projectKey: string): Promise<ProjectLink[]> {
index a07679382808c940be2ded853afbd01bdb407bf2..2c8f490222b6eb87791614c8c8b9129618da7280 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   AddDeleteGroupPermissionsParameters,
index 120dd6a33cd5d05895a9aa82aaaa33067f00accf..58bfb8f69619b0f76db199814b412e0281f67f90 100644 (file)
  */
 import { map } from 'lodash';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { Exporter, ProfileChangelogEvent } from '../apps/quality-profiles/types';
 import { csvEscape } from '../helpers/csv';
-import { RequestData, getJSON, post, postJSON } from '../helpers/request';
+import { RequestData, post, postJSON } from '../helpers/request';
 import { CleanCodeAttributeCategory, SoftwareImpact } from '../types/clean-code-taxonomy';
 import { Dict, Paging, ProfileInheritanceDetails, UserSelected } from '../types/types';
 
index ef3991bb25974269288ee5045cb7fb4e9c689357..7339a43998efda65b440c4c0150d0f12c671d42a 100644 (file)
@@ -19,7 +19,8 @@
  */
 import { HttpStatusCode } from 'axios';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { axiosToCatch, getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { axiosToCatch, post, postJSON } from '../helpers/request';
 import { CleanCodeAttribute, SoftwareImpact } from '../types/clean-code-taxonomy';
 import { GetRulesAppResponse, SearchRulesResponse } from '../types/coding-rules';
 import { SearchRulesQuery } from '../types/rules';
index b9678e9c6dcaf14dcfe56a02dff99c5328a696a7..6c002fe777ccb28727b6fd3a2c08132c347fadcd 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 
 export function fetchIsScimEnabled(): Promise<boolean> {
   return getJSON('/api/scim_management/status')
index 75a743ab118cfdba7c7f9cbebf142c518e5c4995..866a0dcbd4424ab7196b17da57022e8381c1463e 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post } from '../helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   Hotspot,
index 8ca01a42f9dda7252af9c7dac890550bc9bca75b..52b3a0b03ca0d8477df2efbf08779b45db1d9616 100644 (file)
@@ -19,8 +19,9 @@
  */
 import { omitBy } from 'lodash';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { isCategoryDefinition } from '../apps/settings/utils';
-import { getJSON, post, postJSON, RequestData } from '../helpers/request';
+import { post, postJSON, RequestData } from '../helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import {
   ExtendedSettingDefinition,
index 7014f71feea9cb268bc458a2046265608f01ac03..9bf9ca49e6fe687bd768e0b92d2c654ff40fcf2b 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON, requestTryAndRepeatUntil } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON, requestTryAndRepeatUntil } from '../helpers/request';
 import { SystemUpgrade } from '../types/system';
 import { SysInfoCluster, SysInfoStandalone, SysStatus } from '../types/types';
 
index 45f179985888e6ae4f0bf04553efbf73518a0fe8..0dd1b2b6b1e23684be5ba96612d7cdbf7f00ff7e 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { BranchParameters } from '../types/branch-like';
 import { MetricKey } from '../types/metrics';
 import { Paging } from '../types/types';
index 35f8402155b77eb409b41b4c76e58ddadc46ce6d..c315abd9bf44a7f0715dbd6f45a109d622827bf0 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { NewUserToken, UserToken } from '../types/token';
 
 /** List tokens for given user login */
index e4387df03afbb5191da08bb77a2528f640535048..597fa6da3b8850021506ec486ade25b16c3e9442 100644 (file)
@@ -19,7 +19,8 @@
  */
 import axios from 'axios';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { HttpStatus, axiosToCatch, getJSON, parseJSON, post } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { HttpStatus, axiosToCatch, parseJSON, post } from '../helpers/request';
 import { IdentityProvider, Paging } from '../types/types';
 import {
   ChangePasswordResults,
@@ -33,7 +34,7 @@ import {
 const USERS_ENDPOINT = '/api/v2/users-management/users';
 
 export function getCurrentUser(): Promise<CurrentUser> {
-  return getJSON('/api/users/current', undefined, true);
+  return getJSON('/api/users/current', undefined, { bypassRedirect: true });
 }
 
 export function dismissNotice(notice: NoticeType) {
index b7119a8fb20028e497ace8c05c365465875afc94..778df47f5390f73068a145c355f46fb156fb68d6 100644 (file)
@@ -19,7 +19,7 @@
  */
 import { OpenAPIV3 } from 'openapi-types';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { WebApi } from '../types/types';
 
 interface RawDomain {
index 9b59e82a54213f2cba2a57964cf3286fd24c3c8d..70683aaababfca1bef603f37673f7d3476ec5944 100644 (file)
@@ -18,7 +18,8 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
-import { getJSON, post, postJSON } from '../helpers/request';
+import { getJSON } from '~sonar-aligned/helpers/request';
+import { post, postJSON } from '../helpers/request';
 import { Paging } from '../types/types';
 import {
   WebhookCreatePayload,
index c14038522de8d93845d0aff17a7619767612b687..8c1830be5531fd3ddd7806a1a905ff3149232a6c 100644 (file)
 
 import { addGlobalSuccessMessage } from 'design-system';
 import { throwGlobalError } from '~sonar-aligned/helpers/error';
+import { getJSON } from '~sonar-aligned/helpers/request';
 import { translate, translateWithParameters } from '../../../helpers/l10n';
 import {
   get,
-  getJSON,
   getText,
   omitNil,
   parseError,
index 81dfb5bfecb51bca339e3887ba3e3dc7212154b4..916919a42ac5fa7a4ab47073b1035edd626bda6b 100644 (file)
@@ -24,7 +24,6 @@ import { Dict } from '../../types/types';
 import handleRequiredAuthentication from '../handleRequiredAuthentication';
 import {
   checkStatus,
-  getJSON,
   getText,
   HttpStatus,
   isSuccessStatus,
@@ -46,26 +45,6 @@ beforeEach(() => {
   window.fetch = jest.fn().mockResolvedValue(mockResponse({}, HttpStatus.Ok, {}));
 });
 
-describe('getJSON', () => {
-  it('should get json without parameters', async () => {
-    const response = mockResponse({}, HttpStatus.Ok, {});
-    window.fetch = jest.fn().mockResolvedValue(response);
-    getJSON(url);
-    await new Promise(setImmediate);
-
-    expect(window.fetch).toHaveBeenCalledWith(url, expect.objectContaining({ method: 'GET' }));
-    expect(response.json).toHaveBeenCalled();
-  });
-
-  it('should get json with parameters', () => {
-    getJSON(url, { data: 'test' });
-    expect(window.fetch).toHaveBeenCalledWith(
-      url + '?data=test',
-      expect.objectContaining({ method: 'GET' }),
-    );
-  });
-});
-
 describe('getText', () => {
   it('should get text without parameters', async () => {
     const response = mockResponse({}, HttpStatus.Ok, '');
index 693c1d9a12f59a59677161c99c85823776b118d5..cd437aac6f3ff73e3fa47f84e91684b477c65d4b 100644 (file)
@@ -221,13 +221,6 @@ export function get(url: string, data?: RequestData, bypassRedirect = false): Pr
     .then((response) => checkStatus(response, bypassRedirect));
 }
 
-/**
- * Shortcut to do a GET request and return response json
- */
-export function getJSON(url: string, data?: RequestData, bypassRedirect = false): Promise<any> {
-  return get(url, data, bypassRedirect).then(parseJSON);
-}
-
 /**
  * Shortcut to do a GET request and return response text
  */
diff --git a/server/sonar-web/src/main/js/sonar-aligned/helpers/__tests__/request-test.ts b/server/sonar-web/src/main/js/sonar-aligned/helpers/__tests__/request-test.ts
new file mode 100644 (file)
index 0000000..f065fcb
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2024 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import { setImmediate } from 'timers';
+import { HttpStatus } from '../../../helpers/request';
+import { Dict } from '../../../types/types';
+import { getJSON } from '../request';
+
+const url = '/my-url';
+
+beforeEach(() => {
+  jest.clearAllMocks();
+  window.fetch = jest.fn().mockResolvedValue(mockResponse({}, HttpStatus.Ok, {}));
+});
+
+describe('getJSON', () => {
+  it('should get json without parameters', async () => {
+    const response = mockResponse({}, HttpStatus.Ok, {});
+    window.fetch = jest.fn().mockResolvedValue(response);
+    getJSON(url);
+    await new Promise(setImmediate);
+
+    expect(window.fetch).toHaveBeenCalledWith(url, expect.objectContaining({ method: 'GET' }));
+    expect(response.json).toHaveBeenCalled();
+  });
+
+  it('should get json with parameters', () => {
+    getJSON(url, { data: 'test' });
+    expect(window.fetch).toHaveBeenCalledWith(
+      url + '?data=test',
+      expect.objectContaining({ method: 'GET' }),
+    );
+  });
+});
+
+function mockResponse(headers: Dict<string> = {}, status = HttpStatus.Ok, value?: any): Response {
+  const body = value && value instanceof Object ? JSON.stringify(value) : value;
+  const response = new Response(body, { headers, status });
+  response.json = jest.fn().mockResolvedValue(value);
+  response.text = jest.fn().mockResolvedValue(value);
+  return response;
+}
diff --git a/server/sonar-web/src/main/js/sonar-aligned/helpers/request.ts b/server/sonar-web/src/main/js/sonar-aligned/helpers/request.ts
new file mode 100644 (file)
index 0000000..efbef3d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2024 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import { RequestData, get, parseJSON } from '../../helpers/request';
+
+interface CustomHeader {
+  accept?: string;
+  apiVersion?: string;
+  isJSON?: boolean;
+}
+
+interface RequestOptions {
+  bypassRedirect?: boolean;
+  customHeaders?: CustomHeader; // used only in SonarCloud
+  isExternal?: boolean; // used only in SonarCloud
+  useQueryParams?: boolean; // used only in SonarCloud
+}
+
+/**
+ * Shortcut to do a GET request and return response json
+ */
+export function getJSON(
+  url: string,
+  data?: RequestData,
+  options: RequestOptions = {},
+): Promise<any> {
+  return get(url, data, options.bypassRedirect).then(parseJSON);
+}