Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/api.js')
-rw-r--r--app/assets/javascripts/api.js87
1 files changed, 73 insertions, 14 deletions
diff --git a/app/assets/javascripts/api.js b/app/assets/javascripts/api.js
index 8daccae3467..0a3db8ad3a6 100644
--- a/app/assets/javascripts/api.js
+++ b/app/assets/javascripts/api.js
@@ -5,6 +5,12 @@ import { __ } from '~/locale';
const DEFAULT_PER_PAGE = 20;
+/**
+ * Slow deprecation Notice: Please rather use for new calls
+ * or during refactors /rest_api as this is doing named exports
+ * which support treeshaking
+ */
+
const Api = {
DEFAULT_PER_PAGE,
groupsPath: '/api/:version/groups.json',
@@ -13,6 +19,7 @@ const Api = {
groupMilestonesPath: '/api/:version/groups/:id/milestones',
subgroupsPath: '/api/:version/groups/:id/subgroups',
namespacesPath: '/api/:version/namespaces.json',
+ groupInvitationsPath: '/api/:version/groups/:id/invitations',
groupPackagesPath: '/api/:version/groups/:id/packages',
projectPackagesPath: '/api/:version/projects/:id/packages',
projectPackagePath: '/api/:version/projects/:id/packages/:package_id',
@@ -23,6 +30,7 @@ const Api = {
projectLabelsPath: '/:namespace_path/:project_path/-/labels',
projectFileSchemaPath: '/:namespace_path/:project_path/-/schema/:ref/:filename',
projectUsersPath: '/api/:version/projects/:id/users',
+ projectInvitationsPath: '/api/:version/projects/:id/invitations',
projectMembersPath: '/api/:version/projects/:id/members',
projectMergeRequestsPath: '/api/:version/projects/:id/merge_requests',
projectMergeRequestPath: '/api/:version/projects/:id/merge_requests/:mrid',
@@ -127,12 +135,18 @@ const Api = {
});
},
- inviteGroupMember(id, data) {
+ addGroupMembersByUserId(id, data) {
const url = Api.buildUrl(this.groupMembersPath).replace(':id', encodeURIComponent(id));
return axios.post(url, data);
},
+ inviteGroupMembersByEmail(id, data) {
+ const url = Api.buildUrl(this.groupInvitationsPath).replace(':id', encodeURIComponent(id));
+
+ return axios.post(url, data);
+ },
+
groupMilestones(id, options) {
const url = Api.buildUrl(this.groupMilestonesPath).replace(':id', encodeURIComponent(id));
@@ -144,7 +158,10 @@ const Api = {
});
},
- // Return groups list. Filtered by query
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getGroups` method in `~/rest_api` instead.
+ */
groups(query, options, callback = () => {}) {
const url = Api.buildUrl(Api.groupsPath);
return axios
@@ -180,7 +197,10 @@ const Api = {
.then(({ data }) => callback(data));
},
- // Return projects list. Filtered by query
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getProjects` method in `~/rest_api` instead.
+ */
projects(query, options, callback = () => {}) {
const url = Api.buildUrl(Api.projectsPath);
const defaults = {
@@ -217,12 +237,18 @@ const Api = {
.then(({ data }) => data);
},
- inviteProjectMembers(id, data) {
+ addProjectMembersByUserId(id, data) {
const url = Api.buildUrl(this.projectMembersPath).replace(':id', encodeURIComponent(id));
return axios.post(url, data);
},
+ inviteProjectMembersByEmail(id, data) {
+ const url = Api.buildUrl(this.projectInvitationsPath).replace(':id', encodeURIComponent(id));
+
+ return axios.post(url, data);
+ },
+
// Return single project
project(projectPath) {
const url = Api.buildUrl(Api.projectPath).replace(':id', encodeURIComponent(projectPath));
@@ -374,8 +400,8 @@ const Api = {
.post(url, {
label: data,
})
- .then(res => callback(res.data))
- .catch(e => callback(e.response.data));
+ .then((res) => callback(res.data))
+ .catch((e) => callback(e.response.data));
},
// Return group projects list. Filtered by query
@@ -389,10 +415,12 @@ const Api = {
.get(url, {
params: { ...defaults, ...options },
})
- .then(({ data }) => callback(data))
+ .then(({ data }) => (callback ? callback(data) : data))
.catch(() => {
flash(__('Something went wrong while fetching projects'));
- callback();
+ if (callback) {
+ callback();
+ }
});
},
@@ -414,10 +442,10 @@ const Api = {
});
},
- applySuggestion(id) {
+ applySuggestion(id, message) {
const url = Api.buildUrl(Api.applySuggestionPath).replace(':id', encodeURIComponent(id));
- return axios.put(url);
+ return axios.put(url, { commit_message: message });
},
applySuggestionBatch(ids) {
@@ -429,7 +457,7 @@ const Api = {
commitPipelines(projectId, sha) {
const encodedProjectId = projectId
.split('/')
- .map(fragment => encodeURIComponent(fragment))
+ .map((fragment) => encodeURIComponent(fragment))
.join('/');
const url = Api.buildUrl(Api.commitPipelinesPath)
@@ -453,7 +481,7 @@ const Api = {
.replace(':type', type)
.replace(':key', encodeURIComponent(key));
- return axios.get(url, { params: options }).then(res => {
+ return axios.get(url, { params: options }).then((res) => {
if (callback) callback(res.data);
return res;
@@ -465,7 +493,7 @@ const Api = {
.replace(':id', encodeURIComponent(id))
.replace(':type', type);
- return axios.get(url, { params }).then(res => {
+ return axios.get(url, { params }).then((res) => {
if (callback) callback(res.data);
return res;
@@ -505,6 +533,10 @@ const Api = {
.replace(':namespace_path', namespacePath);
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getUsers` method in `~/rest_api` instead.
+ */
users(query, options) {
const url = Api.buildUrl(this.usersPath);
return axios.get(url, {
@@ -516,6 +548,10 @@ const Api = {
});
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getUser` method in `~/rest_api` instead.
+ */
user(id, options) {
const url = Api.buildUrl(this.userPath).replace(':id', encodeURIComponent(id));
return axios.get(url, {
@@ -523,11 +559,19 @@ const Api = {
});
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getUserCounts` method in `~/rest_api` instead.
+ */
userCounts() {
const url = Api.buildUrl(this.userCountsPath);
return axios.get(url);
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getUserStatus` method in `~/rest_api` instead.
+ */
userStatus(id, options) {
const url = Api.buildUrl(this.userStatusPath).replace(':id', encodeURIComponent(id));
return axios.get(url, {
@@ -535,6 +579,10 @@ const Api = {
});
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `getUserProjects` method in `~/rest_api` instead.
+ */
userProjects(userId, query, options, callback) {
const url = Api.buildUrl(Api.userProjectsPath).replace(':id', userId);
const defaults = {
@@ -570,6 +618,10 @@ const Api = {
});
},
+ /**
+ * @deprecated This method will be removed soon. Use the
+ * `updateUserStatus` method in `~/rest_api` instead.
+ */
postUserStatus({ emoji, message, availability }) {
const url = Api.buildUrl(this.userPostStatusPath);
@@ -834,11 +886,18 @@ const Api = {
page: 1,
};
+ const passedOptions = options;
+
+ // calling search API with empty string will not return results
+ if (!passedOptions.search) {
+ passedOptions.search = undefined;
+ }
+
return axios
.get(url, {
params: {
...defaults,
- ...options,
+ ...passedOptions,
},
})
.then(({ data, headers }) => {