aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js
diff options
context:
space:
mode:
authorPhilippe Perrin <philippe.perrin@sonarsource.com>2020-09-04 16:06:16 +0200
committersonartech <sonartech@sonarsource.com>2020-09-18 20:07:14 +0000
commit6d548ff089831ca189c4873a3838cedbc265c69a (patch)
tree2812a981137a320409618b03cd94722950e30c61 /server/sonar-web/src/main/js
parent37a3a7ac753b6f8133b80bc3b8ab20cd7068d402 (diff)
downloadsonarqube-6d548ff089831ca189c4873a3838cedbc265c69a.tar.gz
sonarqube-6d548ff089831ca189c4873a3838cedbc265c69a.zip
SONAR-13643 Update calls to plugins api
Diffstat (limited to 'server/sonar-web/src/main/js')
-rw-r--r--server/sonar-web/src/main/js/api/plugins.ts32
-rw-r--r--server/sonar-web/src/main/js/apps/documentation/components/App.tsx3
-rw-r--r--server/sonar-web/src/main/js/types/plugins.ts5
3 files changed, 28 insertions, 12 deletions
diff --git a/server/sonar-web/src/main/js/api/plugins.ts b/server/sonar-web/src/main/js/api/plugins.ts
index 4e898155f52..8c2b175125c 100644
--- a/server/sonar-web/src/main/js/api/plugins.ts
+++ b/server/sonar-web/src/main/js/api/plugins.ts
@@ -21,7 +21,13 @@ import { findLastIndex } from 'lodash';
import { getJSON, post } from 'sonar-ui-common/helpers/request';
import { isDefined } from 'sonar-ui-common/helpers/types';
import throwGlobalError from '../app/utils/throwGlobalError';
-import { AvailablePlugin, InstalledPlugin, PendingPluginResult, Update } from '../types/plugins';
+import {
+ AvailablePlugin,
+ InstalledPlugin,
+ PendingPluginResult,
+ PluginType,
+ Update
+} from '../types/plugins';
export function getAvailablePlugins(): Promise<{
plugins: AvailablePlugin[];
@@ -56,18 +62,22 @@ function addChangelog(update: Update, updates?: Update[]) {
return { ...update, previousUpdates };
}
-export function getInstalledPlugins(): Promise<InstalledPlugin[]> {
- return getJSON('/api/plugins/installed', { f: 'category' }).then(
- ({ plugins }) => plugins,
- throwGlobalError
- );
+function getInstalledPluginApi(type = PluginType.External) {
+ return getJSON('/api/plugins/installed', { f: 'category', type });
+}
+
+function getUpdatesPluginApi() {
+ return getJSON('/api/plugins/updates');
+}
+
+export function getInstalledPlugins(
+ type: PluginType = PluginType.External
+): Promise<InstalledPlugin[]> {
+ return getInstalledPluginApi(type).then(({ plugins }) => plugins, throwGlobalError);
}
export function getInstalledPluginsWithUpdates(): Promise<InstalledPlugin[]> {
- return Promise.all([
- getJSON('/api/plugins/installed', { f: 'category' }),
- getJSON('/api/plugins/updates')
- ])
+ return Promise.all([getInstalledPluginApi(), getUpdatesPluginApi()])
.then(([installed, updates]) =>
installed.plugins.map((plugin: InstalledPlugin) => {
const updatePlugin: InstalledPlugin = updates.plugins.find(
@@ -89,7 +99,7 @@ export function getInstalledPluginsWithUpdates(): Promise<InstalledPlugin[]> {
}
export function getPluginUpdates(): Promise<InstalledPlugin[]> {
- return Promise.all([getJSON('/api/plugins/updates'), getJSON('/api/plugins/installed')])
+ return Promise.all([getUpdatesPluginApi(), getInstalledPluginApi()])
.then(([updates, installed]) =>
updates.plugins.map((updatePlugin: InstalledPlugin) => {
const updates = getLastUpdates(updatePlugin.updates).map(update =>
diff --git a/server/sonar-web/src/main/js/apps/documentation/components/App.tsx b/server/sonar-web/src/main/js/apps/documentation/components/App.tsx
index e745735be8d..3ad204c15a2 100644
--- a/server/sonar-web/src/main/js/apps/documentation/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/documentation/components/App.tsx
@@ -35,6 +35,7 @@ import ScreenPositionHelper from '../../../components/common/ScreenPositionHelpe
import DocMarkdownBlock from '../../../components/docs/DocMarkdownBlock';
import { ParsedContent, separateFrontMatter } from '../../../helpers/markdown';
import { isSonarCloud } from '../../../helpers/system';
+import { PluginType } from '../../../types/plugins';
import { getUrlsList } from '../navTreeUtils';
import getPages from '../pages';
import '../styles.css';
@@ -97,7 +98,7 @@ export default class App extends React.PureComponent<Props, State> {
}
getLanguagePluginsDocumentation = (tree: DocNavigationItem[]) => {
- return getInstalledPlugins()
+ return getInstalledPlugins(PluginType.Bundled)
.then(plugins =>
Promise.all(
plugins.map(plugin => {
diff --git a/server/sonar-web/src/main/js/types/plugins.ts b/server/sonar-web/src/main/js/types/plugins.ts
index bea645264d1..27a5ce4d37c 100644
--- a/server/sonar-web/src/main/js/types/plugins.ts
+++ b/server/sonar-web/src/main/js/types/plugins.ts
@@ -71,6 +71,11 @@ export interface Update {
previousUpdates?: Update[];
}
+export enum PluginType {
+ Bundled = 'BUNDLED',
+ External = 'EXTERNAL'
+}
+
export function isAvailablePlugin(plugin: Plugin): plugin is AvailablePlugin {
return (plugin as any).release !== undefined;
}