diff options
Diffstat (limited to 'app/assets/javascripts/projects/settings/api/access_dropdown_api.js')
-rw-r--r-- | app/assets/javascripts/projects/settings/api/access_dropdown_api.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/app/assets/javascripts/projects/settings/api/access_dropdown_api.js b/app/assets/javascripts/projects/settings/api/access_dropdown_api.js new file mode 100644 index 00000000000..10f6c28a7bf --- /dev/null +++ b/app/assets/javascripts/projects/settings/api/access_dropdown_api.js @@ -0,0 +1,45 @@ +import axios from '~/lib/utils/axios_utils'; + +const USERS_PATH = '/-/autocomplete/users.json'; +const GROUPS_PATH = '/-/autocomplete/project_groups.json'; +const DEPLOY_KEYS_PATH = '/-/autocomplete/deploy_keys_with_owners.json'; + +const buildUrl = (urlRoot, url) => { + let newUrl; + if (urlRoot != null) { + newUrl = urlRoot.replace(/\/$/, '') + url; + } + return newUrl; +}; + +export const getUsers = (query) => { + return axios.get(buildUrl(gon.relative_url_root || '', USERS_PATH), { + params: { + search: query, + per_page: 20, + active: true, + project_id: gon.current_project_id, + push_code: true, + }, + }); +}; + +export const getGroups = () => { + return axios.get(buildUrl(gon.relative_url_root || '', GROUPS_PATH), { + params: { + project_id: gon.current_project_id, + }, + }); +}; + +export const getDeployKeys = (query) => { + return axios.get(buildUrl(gon.relative_url_root || '', DEPLOY_KEYS_PATH), { + params: { + search: query, + per_page: 20, + active: true, + project_id: gon.current_project_id, + push_code: true, + }, + }); +}; |