From 2a91ab92dac4203e4410f5b2ab0ffbd1a6efac0e Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Mon, 19 Dec 2016 14:07:32 +0100 Subject: SONAR-7674 Add Activity Stream interface (#1459) --- .../sonar-web/src/main/js/api/projectActivity.js | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 server/sonar-web/src/main/js/api/projectActivity.js (limited to 'server/sonar-web/src/main/js/api') diff --git a/server/sonar-web/src/main/js/api/projectActivity.js b/server/sonar-web/src/main/js/api/projectActivity.js new file mode 100644 index 00000000000..9131cb904f9 --- /dev/null +++ b/server/sonar-web/src/main/js/api/projectActivity.js @@ -0,0 +1,99 @@ +/* + * SonarQube + * Copyright (C) 2009-2016 SonarSource SA + * mailto:contact 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. + */ +// @flow +import { getJSON, postJSON, post } from '../helpers/request'; + +type GetProjectActivityResponse = { + analyses: Array, + paging: { + total: number, + pageIndex: number, + pageSize: number + } +}; + +type GetProjectActivityOptions = { + category?: ?string, + pageIndex?: ?number, + pageSize?: ?number +}; + +export const getProjectActivity = ( + project: string, + options?: GetProjectActivityOptions +): Promise => { + const data: Object = { project }; + if (options) { + if (options.category) { + data.category = options.category; + } + if (options.pageIndex) { + data.p = options.pageIndex; + } + if (options.pageSize) { + data.ps = options.pageSize; + } + } + + return getJSON('/api/project_analyses/search', data); +}; + +type CreateEventResponse = { + analysis: string, + key: string, + name: string, + category: string, + description?: string +}; + +export const createEvent = ( + analysis: string, + name: string, + category?: string, + description?: string +): Promise => { + const data: Object = { analysis, name }; + if (category) { + data.category = category; + } + if (description) { + data.description = description; + } + return postJSON('/api/project_analyses/create_event', data).then(r => r.event); +}; + +export const deleteEvent = (event: string): Promise<*> => ( + post('/api/project_analyses/delete_event', { event }) +); + +export const changeEvent = (event: string, name: ?string, description: ?string): Promise => { + const data: Object = { event }; + if (name) { + data.name = name; + } + if (description) { + data.description = description; + } + return postJSON('/api/project_analyses/update_event', data).then(r => r.event); +}; + +export const deleteAnalysis = (analysis: string): Promise<*> => ( + post('/api/project_analyses/delete', { analysis }) +); -- cgit v1.2.3