diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2016-12-19 14:07:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-19 14:07:32 +0100 |
commit | 2a91ab92dac4203e4410f5b2ab0ffbd1a6efac0e (patch) | |
tree | c711f5da56f2f4ef0dd90f897112372223ece703 /server/sonar-web/src/main/js/api | |
parent | afb6610a84b5f237bd036c900dd1a20ca8526311 (diff) | |
download | sonarqube-2a91ab92dac4203e4410f5b2ab0ffbd1a6efac0e.tar.gz sonarqube-2a91ab92dac4203e4410f5b2ab0ffbd1a6efac0e.zip |
SONAR-7674 Add Activity Stream interface (#1459)
Diffstat (limited to 'server/sonar-web/src/main/js/api')
-rw-r--r-- | server/sonar-web/src/main/js/api/projectActivity.js | 99 |
1 files changed, 99 insertions, 0 deletions
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<Object>, + paging: { + total: number, + pageIndex: number, + pageSize: number + } +}; + +type GetProjectActivityOptions = { + category?: ?string, + pageIndex?: ?number, + pageSize?: ?number +}; + +export const getProjectActivity = ( + project: string, + options?: GetProjectActivityOptions +): Promise<GetProjectActivityResponse> => { + 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<CreateEventResponse> => { + 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<CreateEventResponse> => { + 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 }) +); |