2021-09-30 23:02:18 +05:30
|
|
|
import { DEFAULT_PER_PAGE } from '~/api';
|
2021-03-08 18:12:59 +05:30
|
|
|
import axios from '../lib/utils/axios_utils';
|
|
|
|
import { buildApiUrl } from './api_utils';
|
|
|
|
|
|
|
|
const PROJECTS_PATH = '/api/:version/projects.json';
|
2021-11-11 11:23:49 +05:30
|
|
|
const PROJECT_IMPORT_MEMBERS_PATH = '/api/:version/projects/:id/import_project_members/:project_id';
|
2022-07-23 23:45:48 +05:30
|
|
|
const PROJECT_REPOSITORY_SIZE_PATH = '/api/:version/projects/:id/repository_size';
|
2021-03-08 18:12:59 +05:30
|
|
|
|
|
|
|
export function getProjects(query, options, callback = () => {}) {
|
|
|
|
const url = buildApiUrl(PROJECTS_PATH);
|
|
|
|
const defaults = {
|
|
|
|
search: query,
|
|
|
|
per_page: DEFAULT_PER_PAGE,
|
|
|
|
simple: true,
|
|
|
|
};
|
|
|
|
|
|
|
|
if (gon.current_user_id) {
|
|
|
|
defaults.membership = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return axios
|
|
|
|
.get(url, {
|
|
|
|
params: Object.assign(defaults, options),
|
|
|
|
})
|
|
|
|
.then(({ data, headers }) => {
|
|
|
|
callback(data);
|
|
|
|
return { data, headers };
|
|
|
|
});
|
|
|
|
}
|
2021-11-11 11:23:49 +05:30
|
|
|
|
|
|
|
export function importProjectMembers(sourceId, targetId) {
|
|
|
|
const url = buildApiUrl(PROJECT_IMPORT_MEMBERS_PATH)
|
|
|
|
.replace(':id', sourceId)
|
|
|
|
.replace(':project_id', targetId);
|
|
|
|
return axios.post(url);
|
|
|
|
}
|
2022-07-23 23:45:48 +05:30
|
|
|
|
|
|
|
export function updateRepositorySize(projectPath) {
|
|
|
|
const url = buildApiUrl(PROJECT_REPOSITORY_SIZE_PATH).replace(
|
|
|
|
':id',
|
|
|
|
encodeURIComponent(projectPath),
|
|
|
|
);
|
|
|
|
return axios.post(url);
|
|
|
|
}
|